慢指针一次移动一下,快指针一次移动两下,如果链表中存在环,那么快慢指针一定会相遇。
class Solution {
public:
bool hasCycle(ListNode *head) {
if(head==NULL||head->next==NULL){
return false;
}
ListNode* slowNode = head;
ListNode* fastNode = head->next;
while(fastNode!=slowNode){
if(fastNode==NULL||fastNode->next==NULL){
return false;
}
slowNode = slowNode->next;
fastNode = fastNode->next->next;
}
return true;
}
};
本文详细介绍了如何使用快慢指针检测链表中是否存在环。当慢指针每次移动一步,快指针每次移动两步时,如果链表有环,两个指针最终会相遇。该方法简洁高效,适用于链表问题的解决。
1051

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



