题解 | #链表中环的入口结点(单指针遍历,不用判断环)#
链表中环的入口结点
https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4
import java.util.*;
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead) {
/*
创建一个哨兵节点,遍历链表,将所有节点指向它。
如果是单链,则最终的节点指向的是null,
否则一定是环的入口且指向哨兵。
*/
if (pHead==null || pHead.next==null)
return null;
ListNode p = pHead, p_next = p.next; //p_next指向p的下一个节点
ListNode q = new ListNode(0);
while (p_next!=null){
if (p.next==q)
return p;
p.next = q;
p = p_next;
p_next = p.next;
}
return null;
}
}
