【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
}
相关推荐
圣保罗的大教堂42 分钟前
leetcode 3300. 替换为数位和以后的最小元素 简单
leetcode
sheeta199843 分钟前
LeetCode 每日一题笔记 日期:2026.05.27 题目:3121. 统计特殊字母的数量 II
笔记·算法·leetcode
Tisfy1 小时前
LeetCode 3300.替换为数位和以后的最小元素:一次遍历
数学·算法·leetcode·模拟
暗冰ཏོ2 小时前
Go 语言从入门到后端项目实战完整指南
开发语言·后端·golang·go·go语言
Reisentyan3 小时前
[Advance]GoLang Learn Data Day 4
java·数据库·golang
brycegao3213 小时前
Vue3+Go 全栈项目上线阿里云|从 0 到 1 踩坑全纪录
开发语言·阿里云·golang
Lucky_ldy3 小时前
数据结构从入门到精通:顺序表
数据结构·链表
金牌归来发现妻女流落街头3 小时前
【LeetCode 第207题】
算法·leetcode·拓扑·领接表
会编程的土豆4 小时前
Go 里的 error 接口 + 假 nil(超级重点)
开发语言·后端·golang
basketball6164 小时前
Golang:基本输入输出使用方法总结
开发语言·golang·xcode