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

day133—快慢指针—链表的中间结点(LeetCode-876)

题目描述

给你单链表的头结点head,请你找出并返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点。

示例 1:

输入:head = [1,2,3,4,5]输出:[3,4,5]解释:链表只有一个中间结点,值为 3 。

示例 2:

输入:head = [1,2,3,4,5,6]输出:[4,5,6]解释:该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。

提示:

  • 链表的结点数范围是[1, 100]
  • 1 <= Node.val <= 100

解决方案:

这段代码的核心功能是找到单链表的中间节点(若链表节点数为偶数,返回第二个中间节点;奇数则返回正中间节点),采用「快慢指针(龟兔赛跑)」的经典方法实现,时间复杂度O(n)、空间复杂度O(1),是找链表中间节点的最优解法。

核心逻辑

代码利用快慢指针的步长差异,让快指针走得更快,当快指针到达链表末尾时,慢指针恰好停在中间位置:

  1. 指针初始化:慢指针low和快指针fast都从链表头节点head出发;
  2. 快慢遍历:循环条件为fast不为空且fast->next不为空(保证快指针能走两步):
    • 慢指针low每次走 1 步(low = low->next);
    • 快指针fast每次走 2 步(fast = fast->next->next);
  3. 返回结果:循环结束时,快指针已走到链表末尾(或超出末尾),慢指针恰好指向链表的中间节点,直接返回low即可。

总结

  1. 核心思路:快慢指针步长比 1:2,利用步长差让慢指针 “天然” 停在中间位置,无需统计链表长度;
  2. 关键细节:循环条件fast && fast->next避免快指针访问空指针的next导致崩溃;
  3. 结果特性:偶数节点返回第二个中间节点(如 1→2→3→4 返回 3),奇数节点返回正中间(如 1→2→3 返回 2),符合常规题目要求。

函数源码:

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* middleNode(ListNode* head) { ListNode* low=head; ListNode* fast=head; while(fast && fast->next){ low=low->next; fast=fast->next->next; } return low; } };
http://www.jsqmd.com/news/257535/

相关文章:

  • 深入解析 Flutter 跨端开发在扫描全能王移动端应用中的实践:从技术栈到面试准备
  • 短视频平台源码,CSS实现聊天布局 - 云豹科技
  • 基于SpringBoot的水产养殖管理系统的设计与实现
  • 2026年正规的热镀锌钢波纹管,整装钢波纹管,大跨径钢波纹管厂家采购决策指南 - 品牌鉴赏师
  • Android开发工程师深度解析:从技术体系到面试实战
  • 基于springboot车辆报废回收管理系统设计实现
  • AI应用与全栈开发工程师(智能体方向)的全面指南
  • 基于SpringBoot的办公管理系统设计与实现
  • 清远市阳山连山壮族瑶族连南英德连州区英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 老周说教育
  • ssm607宠物用品商城带商家vue上架时间
  • 带来 Multi Agent 开发,OpenSolon v3.8.3 发布
  • 2026年实验室建设服务商,实验室建设哪家好? - 工业品牌热点
  • 强烈安利10个一键生成论文工具,研究生论文写作必备!
  • 2023年全国网络安全行业职业技能大赛-电子数据取证分析师 - 详解
  • ssm600网上考试系统
  • ssm601宁夏旅游管理系统vue
  • 吐血推荐9个AI论文工具,自考学生轻松搞定毕业论文!
  • ssm605网上超市购物补货配送系统员工考勤管理系统vue
  • ssm604高校学生考试成绩管理系统vue
  • 【VMware】最强电脑虚拟机
  • Screaming Frog Log File Analyser(尖叫青蛙网络爬虫软件)
  • 幽冥大陆(一百03)智能门禁MQTT注册人员接口—东方仙盟练气期
  • 超越基础主题建模:利用Gensim解决实际NLP挑战的深度实践
  • 不要让几十万血汗钱打水漂!山西农村自建房必须要了解的7个问题,不懂真的亏大了! - 苏木2025
  • 交换机专题:什么是交换机堆叠
  • P14847 [ICPC 2022 Yokohama R] Make a Loop
  • 校友会2026年中国体育类大学排名,北京体育大学、武汉体育学院体育科技学院、郑州体育职业学院第一
  • 替代MinIO?从协议、性能到国产化,全面对比RustFS的降维打击
  • 表达式求值
  • 2025年火锅界顶流盘点,这些品牌火遍全网!美食/老火锅/火锅/火锅店/特色美食/社区火锅/烧菜火锅火锅回头客多的找哪家 - 品牌推荐师