题解 | #链表中环的入口结点#
链表中环的入口结点
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
vivo公司氛围 351人发布
查看13道真题和解析
