LeetCode142 环形链表II(返回链表入环的第一个节点)
1. 问题描述


2. 思路
快慢指针
一个指针从快慢指针相遇的节点,另一个指针从头节点出发,进行遍历,直到再次相遇,即为节点
3. 代码
func detectCycle(head *ListNode) *ListNode {
slow, fast := head, head
for fast != nil && fast.Next != nil {
slow = slow.Next
fast = fast.Next.Next
if slow == fast {
cur := head
for slow != cur {
slow = slow.Next
cur = cur.Next
}
return slow
}
}
return nil
}
本文详细介绍了LeetCode上的142题“环形链表II”的解决方案,通过使用快慢指针的方法来找到链表中形成环的起始节点。文章提供了完整的Go语言实现代码。
425

被折叠的 条评论
为什么被折叠?



