题解 | #链表中环的入口结点#
链表中环的入口结点
https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def EntryNodeOfLoop(self, pHead): # write code here slow = pHead fast = pHead while slow: slow = slow.next # 判断环 if fast.next: fast = fast.next.next if not fast: return None # 若有环,则从相遇点到环入口的步数=从起点到环入口的步数 if fast == slow: p = pHead q = fast while p and q: if p == q: return p p = p.next q = q.next # 只需要遍历2次链表,所以是O(n) return None