/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
*
* @param head ListNode类
* @return bool布尔型
*/
bool hasCycle(struct ListNode* head ) {
// write code here
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;
}
}