【Golang】LeetCode 142. 环状链表 II

142. 环状链表 II

题目描述

思路

「141. 环形链表」本质上是这道题目的简化,因此我们就跳过 Hot 100 当中的这道题目,直接来将「142. 环形链表 II」。

想要找到环形链表的入口,我们需要记住一个结论,那就是当我们首先通过快慢指针找到环形链表当中的相交点时,令slow, fast := head, intersectionintersection是相交点),然后同时令它们不断地后移一个节点,最终它们相遇的位置,就是环的入口。

基于以上思路,我们来写代码解决这道题。

Golang 题解

go 复制代码
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func detectCycle(head *ListNode) *ListNode {
    slow, fast := head, head
    for fast != nil {
        slow = slow.Next
        fast = fast.Next
        if fast != nil {
            fast = fast.Next
        }
        if slow == fast {
            break
        }
    }

    fast = head
    for slow != fast && slow != nil {
        slow, fast = slow.Next, fast.Next
    }

    return slow
}
相关推荐
im_AMBER5 分钟前
Leetcode 95 分割链表
数据结构·c++·笔记·学习·算法·leetcode·链表
源代码•宸19 分钟前
goframe框架签到系统项目开发(实现总积分和积分明细接口、补签日期校验)
后端·golang·postman·web·dao·goframe·补签
梭七y22 分钟前
【力扣hot100题】(121)反转链表
算法·leetcode·链表
黎雁·泠崖34 分钟前
【线性表系列入门篇】从顺序表到链表:解锁数据结构的进化密码
c语言·数据结构·链表
AD钙奶-lalala39 分钟前
leetcode核心母题总结
算法·leetcode·职场和发展
YGGP1 小时前
【Golang】LeetCode 2. 两数相加
开发语言·leetcode·golang
Yy_Yyyyy_zz1 小时前
2025 技术年终总结|近七年 Golang 工程实践、AI 应用落地与技术创作回顾
开发语言·golang·ai编程
努力学算法的蒟蒻1 小时前
day53(1.4)——leetcode面试经典150
算法·leetcode·面试
GrowingYi1 小时前
Go语言的特性
开发语言·后端·golang
YGGP2 小时前
【Golang】LeetCode 21. 合并两个有序链表
leetcode·链表·golang