/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
bool hasCycle(ListNode *head) {
ListNode *p1,*p2;//快慢指针
p1=head;
p2=head;
while(p2!=nullptr&&p2->next!=nullptr)//p2不为空且p2的下一个也不为空才能循环(避免链表中只有一个元素的情况)
{
p1=p1->next;
p2=p2->next->next;
if(p1==p2)
{
return true;
}
}
return false;
}
};


京公网安备 11010502036488号