您的位置:首页 > 其它

判断一个链表是否有环,并找出环的入口

2017-10-11 16:42 267 查看
一个链表中包含环,请找出该链表的环的入口结点。

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐