AcWing 34. 链表中环的入口结点
原题链接
中等
作者:
Zh1995
,
2019-08-11 15:48:27
,
所有人可见
,
阅读 808
//利用快慢指针找链表的环的入口
class Solution {
public ListNode entryNodeOfLoop(ListNode head) {
if(head==null || head.next==null)
return null;
ListNode slow=head;
ListNode fast=head;
while(fast!=null)//快慢为空表中就没环
{
slow=slow.next;
fast=fast.next;
if(fast==null)//只有当fast.next!=null,才可以寻找fast.next.next;
return null;
fast=fast.next;
//二者想等时,将慢指针指向头,这时快慢指针每次同时向后移动一位置知道二者相遇
if(slow==fast)
{
slow=head;
while(slow!=fast)
{
slow=slow.next;
fast=fast.next;
}
return slow;
}
}
return null;
}
}