题解 | #链表中环的入口结点(单指针遍历,不用判断环)#
链表中环的入口结点
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; } }