news 2026/4/15 11:40:13

0142.环形链表 ii

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
0142.环形链表 ii

题目链接

https://leetcode.cn/problems/linked-list-cycle-ii/

题目描述

给定单链表 head,若链表中存在环,返回环的第一个进入节点(环的入口);若不存在环则返回 null。

解题思路

  • Floyd 判圈 + 数学定位入口
    • 第一阶段:快慢指针相遇判断是否有环。slow 每次一步,fast 每次两步;相遇则说明有环。
    • 第二阶段:定位入口。将其中一个指针移到头节点,两个指针改为每次各走一步;再次相遇点即为环入口。
  • 原理说明(距离记法):
    • 设从头到入口距离为 a,入口到相遇点为 b,环长为 c。
    • 相遇时 fast 走了 2(a+b),slow 走了 a+b,且 fast 比 slow 多走了若干圈:2(a+b) = (a+b) + k·c → a+b = k·c → a ≡ (-b) mod c。
    • 因此从相遇点再走 a 步回到入口;从头走 a 步也到入口,两者同步一步步走会在入口相遇。

题解代码

publicclassSolution{publicListNodedetectCycle(ListNodehead){if(head==null||head.next==null)returnnull;ListNodeslow=head,fast=head;// 阶段一:判圈并找到首次相遇点while(fast!=null&&fast.next!=null){slow=slow.next;fast=fast.next.next;if(slow==fast){// 阶段二:从头与相遇点同时出发,步长为1,入口处相遇ListNodep1=head,p2=slow;while(p1!=p2){p1=p1.next;p2=p2.next;}returnp1;// 或 p2}}returnnull;}}

复杂度分析

  • 时间复杂度:O(n),判圈与定位入口均为线性。
  • 空间复杂度:O(1),仅使用常数级指针。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 11:38:20

Marimo 高危预认证 RCE 漏洞已遭活跃利用

聚焦源代码安全,网罗国内外最新资讯!编译:代码卫士开源响应式 Python 笔记本平台 Marimo 中存在一个严重漏洞CVE-2026-39987(CVSS评分9.3),攻击者无需认证即可实现远程代码执行 (RCE),影响 Mari…

作者头像 李华
网站建设 2026/4/15 11:38:19

终极指南:如何让AirPods在Windows上获得完整功能体验

终极指南:如何让AirPods在Windows上获得完整功能体验 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop AirPodsDeskt…

作者头像 李华
网站建设 2026/4/15 11:37:33

Augment插件深度清理指南:如何彻底重置试用状态(支持多IDE版本)

Augment插件多IDE深度清理与重置实战指南 1. 理解Augment插件的试用限制机制 Augment作为一款强大的AI编程助手,其试用限制机制远比表面看到的复杂。许多开发者发现,即使更换账号或重装IDE,依然会遇到"Too many free trials"的提示…

作者头像 李华
网站建设 2026/4/15 11:37:16

3种策略解决机器人学习框架LeRobot的依赖管理挑战

3种策略解决机器人学习框架LeRobot的依赖管理挑战 【免费下载链接】lerobot 🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning 项目地址: https://gitcode.com/GitHub_Trending/le/lerobot 机器人学习框架LeRobot为开发者提供了…

作者头像 李华
网站建设 2026/4/15 11:34:12

革命性AMD Ryzen硬件调试:SMUDebugTool深度解析与实战应用

革命性AMD Ryzen硬件调试:SMUDebugTool深度解析与实战应用 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…

作者头像 李华
网站建设 2026/4/15 11:32:52

状态空间搜索算法实战:从迷宫问题到路径规划

状态空间搜索算法实战:从迷宫问题到路径规划 在解决现实世界的复杂问题时,我们常常需要找到从初始状态到目标状态的有效路径。这种需求在游戏开发、机器人导航、物流调度等领域尤为常见。状态空间搜索算法为我们提供了一套系统化的方法论,能够…

作者头像 李华