# -*- 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

京公网安备 11010502036488号