# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def EntryNodeOfLoop(self, pHead): fast=pHead slow=pHead while fast and fast.next: fast=fast.next.next slow=slow.next if fast==slow: #从这之前的代码主要证明是否存在环,若存在,fast目前所在位置就是两个指针相遇的位置 slow=pHead #此时慢指针回到初始位置出发,快指针从相遇位置出发,他们以相同的速度出发,他们相遇点就是环入口 while fast!=slow and fast and fast.next: slow=slow.next fast=fast.next return slow