怎么判断链表中是否有环?
2011-10-21 14:02
204 查看
详细分析请参考:/article/9951642.html
本文转自:http://topic.csdn.net/t/20051126/20/4420360.html
具体思路是定义两个指针,一快一慢,如果链表中存在环的话,慢的指针一定能够追上快得指针
bool CircleInList(Link* pHead)
{
if(pHead == NULL || pHead-> next == NULL)//无节点或只有一个节点并且无自环
{
return (false);
}
if(pHead-> next == pHead)//自环
{
return (true);
}
Link *pTemp1 = pHead;//step 1
Link *pTemp = pHead-> next;//step 2
while(pTemp != pTemp1 && pTemp != NULL && pTemp-> next != NULL)
{
pTemp1 = pTemp1-> next;
pTemp = pTemp-> next-> next;
}
if(pTemp == pTemp1)
{
return (true);
}
return (false);
}
本文转自:http://topic.csdn.net/t/20051126/20/4420360.html
具体思路是定义两个指针,一快一慢,如果链表中存在环的话,慢的指针一定能够追上快得指针
bool CircleInList(Link* pHead)
{
if(pHead == NULL || pHead-> next == NULL)//无节点或只有一个节点并且无自环
{
return (false);
}
if(pHead-> next == pHead)//自环
{
return (true);
}
Link *pTemp1 = pHead;//step 1
Link *pTemp = pHead-> next;//step 2
while(pTemp != pTemp1 && pTemp != NULL && pTemp-> next != NULL)
{
pTemp1 = pTemp1-> next;
pTemp = pTemp-> next-> next;
}
if(pTemp == pTemp1)
{
return (true);
}
return (false);
}
相关文章推荐
- 怎么判断链表中是否有环?
- 怎么判断链表中是否有环
- 怎么判断链表中是否有环
- 判断仅有指针域的单链表是否有环且怎么找到环
- 判断仅有指针域的单链表是否有环且怎么找到环
- 链表怎么判断是否相交
- linked-list-cycle——链表、判断是否循环链表、快慢指针
- 第四周项目3—单链表 【3】判断是否递增
- 判断单链表是否存在环,判断两个链表是否相交问题详解
- 《程序员面试金典》--判断链表是否为回文链表
- 判断链表是否带环,以及环的入口
- 判断链表是否存在环形链表
- 判断链表中是否存在环问题、判断两个链表是否相交问题及其扩展
- 一道不错的算法题-判断链表是否有环
- 怎么快速检测出一个巨大的单链表中是否具备死链及其位置?
- 判断链表是否有环
- 判断一个单向链表中是否存在环
- 【转载】判断单链表是否存在环,判断两个链表是否相交问题详解
- 6. 微软面试题:判断俩个链表是否相交
- 编程判断两个链表是否相交