当前位置: 首页 > news >正文

算法训练营第七天|142.环形链表Ⅱ

题目链接:https://leetcode.cn/problems/linked-list-cycle-ii/

视频链接:https://www.bilibili.com/video/BV1if4y1d7ob

题目描述:

测试用例:

算法描述:

这个算法的目标是:给定一个单链表的头节点 head,找到并返回链表的中间节点。如果链表有两个中间节点,则返回第二个。
核心思想:快慢指针
这个算法的核心思想是定义两个指针,从链表的头节点同时出发:
慢指针 (slow):每次向后移动一个节点。
快指针 (head):每次向后移动两个节点。
你可以想象成两个人在跑步,一个人(快指针)的速度是另一个人(慢指针)的两倍。当跑得快的人到达终点时,跑得慢的人恰好就在路程的中间位置。
代码逻辑解析
虽然你提供的代码片段不完整,但其核心部分清晰地展示了算法的执行流程:
初始化:slow 和 head(在此处充当快指针)都从链表的头节点开始。
循环移动:在一个循环中(循环条件通常是快指针 head 及其下一个节点 head.next 不为空),两个指针同时移动。

slow = slow.next; // 慢指针走一步
head = head.next.next; // 快指针走两步
返回结果:当快指针 head 到达链表末尾时,循环结束。此时,慢指针 slow 所指向的节点就是链表的中间节点。

举例说明
奇数个节点:1 -> 2 -> 3 -> 4 -> 5
初始:slow 指向 1,head 指向 1。
第一次移动后:slow 指向 2,head 指向 3。
第二次移动后:slow 指向 3,head 指向 5。
head 无法再走两步,循环结束。slow 指向的 3 就是中间节点。
偶数个节点:1 -> 2 -> 3 -> 4 -> 5 -> 6
初始:slow 指向 1,head 指向 1。
第一次移动后:slow 指向 2,head 指向 3。
第二次移动后:slow 指向 3,head 指向 5。
第三次移动后:slow 指向 4,head 指向 null (越过了 6)。
循环结束。slow 指向的 4 就是第二个中间节点。
这种算法非常高效,只需要遍历一次链表。

时间复杂度为 O(n);

空间复杂度为 O(1);

http://www.jsqmd.com/news/673205/

相关文章:

  • MATLAB实战:手把手教你仿真OFDM的PAPR问题(附代码与避坑指南)
  • 从struct tm到time_t:手把手教你用C++处理日期时间的完整流程(附常见错误排查)
  • 告别Offboard模式:在APM固件下用MAVROS控制Pixhawk无人车的完整指南(附避坑点)
  • 杭州靠谱的企业微信服务商有哪些 - 品牌排行榜
  • 哪家快递有吧唧保护盒?2026年寄件防护方案解析 - 品牌排行榜
  • 告别Python版本混乱!Windows 11下用pyenv-win保姆级配置指南(含Chocolatey安装)
  • 3大核心技术解析:GModPatchTool如何彻底解决GMod跨平台浏览器与启动故障
  • 杰理之在music模式下以打断方式音量加按键按住一直播放最大音量提示音,持续一段时间异常死机【篇】
  • 15.【LangChain学院】Foundation (1.2.2)- Web Search | Tavily | 口碑商品推荐 | 最佳实践 | 关键词优化 | 确定性控制
  • 安捷伦网络分析仪E5062A网络分析仪
  • 终极指南:用OpenLyrics让foobar2000的歌词体验焕然一新 [特殊字符]
  • 2026年谷子什么快递不避雷?选对物流很关键 - 品牌排行榜
  • 手把手教你用网线搞定华为S5735S交换机堆叠(iStack实战避坑)
  • 嘉兴企业微信服务商公司推荐及服务解析 - 品牌排行榜
  • 国产SCA工具崛起:Gitee CodePecker如何破解企业软件供应链安全困局
  • AI Agent在智能风控中的多智能体协同:从规则到AI的演进
  • VMD滚动分解+LSTM多变量时序预测,防信息泄露,MATLAB代码
  • 从《最蓝的眼睛》到代码重构:如何用Python爬虫和NLP分析托妮·莫里森笔下的‘秩序’与‘混乱’
  • 杭州企业微信服务商推荐及选择参考 - 品牌排行榜
  • 在博客的第一遍文章
  • Gitee DevOps平台:本土化优势与数字化转型的加速器
  • 2026年4月 乙酰丙酮氧化钛厂家推荐,乙酰丙酮钛/双(乙酰基丙酮酸基)钛氧化物源头厂家,专业品质与稳定供应实力解析 - 品牌推荐用户报道者
  • Cadence Allegro 17.4 建库避坑指南:从PAD丢失到Pin One属性,新手常踩的5个雷
  • C++零基础到工程实战(4.3.6):vector中push_back和emplace_back性能分析
  • Python提高:条件断点的详解-由Deepseek产生
  • 【收藏备用】2026年AI行业最大机会在应用层!大模型岗位暴增,程序员入门必看
  • zmq源码分析之请求模式数据发送
  • 光学频率梳市场:全球市场年复合增长率(CAGR)为8.3%(2026-2032)
  • [特殊字符] Meixiong Niannian画图引擎效果实测:1024×1024输出在印刷级DPI下的表现
  • 2026年同人谷快递哪家靠谱?物流服务选择解析 - 品牌排行榜