思路:
使用快慢指针,快指针开始走前一步,就像两个人在操场跑步,速度不一样,总会相遇的
代码:
class Solution {
public:
bool hasCycle(ListNode *head) {
if(head==NULL||head->next==NULL)
return false;
ListNode *fast=head->next,*slow=head;
while(fast!=slow){
if(fast==NULL||fast->next==NULL)
return false;
slow=slow->next;
fast=fast->next->next;
}
return true;
}
};
本文介绍了一种使用快慢指针的方法来检测链表中是否存在循环。通过让两个指针以不同速度前进,如果存在循环,则这两个指针最终会相遇。
339

被折叠的 条评论
为什么被折叠?



