一个链表中包含环,请找出该链表的环的入口结点。
ListNode* EntryNodeOfLoop(ListNode* pHead)
{
if(pHead==NULL || pHead->next==NULL)
return NULL;
ListNode *fast=pHead;
ListNode *slow=pHead;
while(fast!=NULL && fast->next!=NULL){
fast=fast->next->next;
slow=slow->next;
if(fast==slow)
break;
}
//没有环的情况
if(fast==NULL || fast->next==NULL)
return NULL;
slow=pHead;
while(fast!=slow){
fast=fast->next;
slow=slow->next;
}
return fast;
}