让快指针的速度是慢指针的两倍,这样当慢指针走k步,快指针一定是2k步,两个指针此时一定相遇
class Solution {
public:
bool hasCycle(ListNode *head) {
ListNode *slow = head, *fast = head;
while (fast != NULL && fast->next != NULL)
{
slow = slow->next;
fast = fast->next->next;
if (slow == fast)
return true;
}
return false;
}
};