class Solution {
public:
bool hasCycle(ListNode *head) {
if(head==NULL||head->next==NULL)
return false;
ListNode * pNode=head;
ListNode * pNext=head;
while(pNode!=NULL&&pNext!=NULL)
{
pNode=pNode->next;
pNext=pNext->next;
if(pNext!=NULL)
pNext=pNext->next;
if(pNode==pNext)
return true;
}
return false;
}
}`
/*出错点
1.判断链表是否为0的节点应写在最外层循环中;
2.利用快慢节点时,快节点每次都比慢节点多走一个链表,否则会超出时间限制,相遇速度过于慢。
3.快节点,在多次进行->next时,应判断是否为NULL;
判断是否为环形链表
最新推荐文章于 2022-11-10 20:43:58 发布