判断给定的链表中是否有环。如果有环则返回true,否则返回false。
bool hasCycle(struct ListNode* head ) {
if(NULL == head)
return false;
//p1快指针,p2慢指针
struct ListNode* p1 = head;
struct ListNode* p2 = head;
for(;;)
{
if(NULL == p1 || NULL == p1->next || NULL == p1->next->next)
return false;
p2 = p2->next;
p1 = p1->next->next;
if(p1 == p2)
return true;
}
}