//设置两个速度不同的指针同时从链表的第一个节点开始遍历链表,
//一个快指针p2每次移动两个节点,一个慢指针p1每次移动一个节点,
//若两个指针能相遇,则存在环。
#include <stdbool.h>
bool hasCycle(struct ListNode* head )
{
struct ListNode *p1=head, *p2=head;
while((p2 != NULL) && (p2->next != NULL))
{
p1 = p1->next;
p2 = p2->next->next;
if(p1==p2) { return 1;}
}
return 0;
}