leetcode hot100 环形链表2

142. 环形链表 II

已解答

中等

相关标签

相关企业

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始 )。如果 pos-1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。

不允许修改链表。

Definition for singly-linked list.

class ListNode(object):

def init(self, x):

self.val = x

self.next = None

class Solution(object):

def detectCycle(self, head):

"""

:type head: ListNode

:rtype: ListNode

"""

seen =set()

p=head

while p!=None:

if p in seen:

return p

else:

seen.add(p)

p=p.next

return None

"""

如何用空间复杂度1实现

"""

快慢指针可以吗

fast ,slow =head,head

while True:

if not (fast and fast.next): return

fast , slow = fast.next.next, slow.next

if fast==slow: break

fast = head

while fast!=slow:

fast,slow =fast.next,slow.next

return fast

这里是两种方法,第二种 快慢指针,非常男想到啊,需要列出公式,然后推理得到,在快慢指针相遇之后,在经过环外面的路径的长度的话,会到达相交节点

相关推荐
youzjuer1 分钟前
算法之二叉树
算法·深度优先
2401_8588698020 分钟前
支持向量机
算法·机器学习·支持向量机
用户48221371677536 分钟前
深度学习——卷积神经网络
算法
DashingGuy40 分钟前
算法(keep learning)
java·数据结构·算法
兔兔西42 分钟前
【数据结构、java学习】数组(Array)
java·数据结构·算法
007php00742 分钟前
Go语言面试:传值与传引用的区别及选择指南
java·开发语言·后端·算法·面试·golang·xcode
小徐不徐说43 分钟前
数据结构基础之队列:数组/链表
c语言·数据结构·算法·链表·面试
fantasy_arch1 小时前
SVT-AV1 svt_aom_motion_estimation_kernel 函数分析
人工智能·算法·av1
星逝*2 小时前
LeetCode刷题-top100( 矩阵置零)
算法·leetcode·矩阵
zandy10112 小时前
LLM与数据工程的融合:衡石Data Agent的语义层与Agent框架设计
大数据·人工智能·算法·ai·智能体