判断一个链表是否为循环链表
2007-09-09 16:12
344 查看
方法:
设两个指针同时指向头节点,一个指针的移动步长为1,另一个指针的移动步长为2,若两个指针能再次相遇,说明该链表为循环链表.
说明:若某单链表L只包含头节点head,则head->next==NULL;
若某个循环链表只包含头节点,则head->next=head;
bool IsLoopList(LinkNode *L){
LinkNode *p1=L,*p2=L;
if(L->next==NULL)//只包含头节点,且头节点的next为NULL说明肯定不是循环链表
return false;
do{
p1=p1->next;
p2=p2->next->next;
}while(p2 && p2->next && p1!=p2);
if(p1==p2)
return true;
else
return false;
}
设两个指针同时指向头节点,一个指针的移动步长为1,另一个指针的移动步长为2,若两个指针能再次相遇,说明该链表为循环链表.
说明:若某单链表L只包含头节点head,则head->next==NULL;
若某个循环链表只包含头节点,则head->next=head;
bool IsLoopList(LinkNode *L){
LinkNode *p1=L,*p2=L;
if(L->next==NULL)//只包含头节点,且头节点的next为NULL说明肯定不是循环链表
return false;
do{
p1=p1->next;
p2=p2->next->next;
}while(p2 && p2->next && p1!=p2);
if(p1==p2)
return true;
else
return false;
}
相关文章推荐
- 判断一个单向链表是否有环和判断一个单向链表是否是循环链表
- 判断一个单向链表是否有环和判断一个单向链表是否是循环链表
- 判断一个单向链表是否有环和判断一个单向链表是否是循环链表
- 判断一个单向链表是否有环和判断一个单向链表是否是循环链表
- 四道有趣的单链表面试题(单链表反序、找出链表的中间元素、链表排序、判断一个单链表是否有环
- 判断一个链表是否有环,如果有环返回环开始的结点指针
- 判断一个链表是否有环--剑指offer
- 链表问题——判断一个链表是否为回文结构
- 【题目13】判断一个链表是否存在环
- 判断一个链表中是否有环,并且得到环的入口位置
- 链表问题---判断一个链表是否为回文结构
- 【笔试/面试】—— 判断一个链表是否有环
- 判断两个链表是否相交和一个单链表是否有环及环的链接点(转)
- 判断一个链表是否为回文结构
- 判断一个单向链表中是否有环
- 判断一个链表是否存在环
- 四道有趣的单链表面试题(单链表反序、找出链表的中间元素、链表排序、判断一个单链表是否有环)
- 判断一个链表是否是回文结构 Python 版
- [leetcode 141] Linked List Cycle----判断链表是否为循环链表
- 判断一个链表是否有环