public ListNode EntryNodeOfLoop(ListNode pHead) {
if(pHead==null || pHead.next==null){
return null;
}
ListNode fast = pHead;
ListNode slow = pHead;
while(fast!=null && slow!=null){
slow = slow.next;
fast = fast.next;
if(fast!=null){
fast=fast.next;
}
if(fast==slow){
break;
}
}
//TODO:如果此时 fast==null 或许 fast.next==null 说明是不存在环的
if(fast == null || fast.next == null){
return null;
}
slow = pHead;
while(slow!=fast){
slow=slow.next;
fast=fast.next;
}
return slow;
}
https://www.mianshi.online,https://www.i9code.cn
本文由博客一文多发平台 OpenWrite 发布!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。