news 2026/4/3 7:30:44

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/26 12:18:36

Screaming Frog Log File Analyser(尖叫青蛙网络爬虫软件)

链接&#xff1a;https://pan.quark.cn/s/07db6190d7321、在本站下载解压软件得到安装包以及注册机; 2、双击.exe运行安装&#xff0c;如图所示&#xff0c;选择安装方式&#xff0c;默认安装和自定义安装; 3、勾选Custom&#xff0c;如图所示&#xff0c;点击浏览选择软件安装…

作者头像 李华
网站建设 2026/4/2 5:13:28

Kubernetes Pod 存储全景图:Volume、PVC、PV 到 CSI 的完整链路解析

适用场景:Kubernetes 存储设计 / 持久化数据 / 动态卷自动化 目录 Kubernetes Volume 概述 基础 Volume 类型 emptyDir、hostPath 网络存储 Volume NFS、云盘示例 PersistentVolume (PV) 与 PersistentVolumeClaim (PVC) 静态配置示例与访问模式 StorageClass 与动态卷配置(以…

作者头像 李华
网站建设 2026/3/25 8:10:09

QLC pSLC模式|超低功耗LDPC解码器

在NAND闪存向高密度、低成本演进的浪潮中,QLC凭借每单元4位的存储密度和亲民的价格,正快速挤占TLC的市场份额。但密度提升的背后,是QLC与生俱来的短板——更长的读写延迟、更低的PE(编程/擦除)循环寿命和更差的可靠性。 为了平衡性能与成本,伪SLC(Pseudo-SLC)模式成为行…

作者头像 李华
网站建设 2026/4/1 3:02:38

为NAND续命:页隔离技术如何让“坏块“重获新生?

当年特斯拉因闪存故障召回15.8万辆Model S和Model X时,整个行业意识到一个被忽视的真相:即便在SSD普及的今天,我们依然深度依赖的NAND Flash闪存,正被耐久性和可靠性两大顽疾困扰。Program/Erase(P/E)循环导致的磨损老化、Cell间干扰引发的错误累积,让大量闪存块提前沦为…

作者头像 李华
网站建设 2026/4/2 12:19:17

强烈安利专科生必看!10个AI论文网站深度测评

强烈安利专科生必看&#xff01;10个AI论文网站深度测评 2026年专科生必备的AI论文工具测评 随着人工智能技术的不断进步&#xff0c;越来越多的专科生开始借助AI工具提升论文写作效率。然而&#xff0c;面对市场上琳琅满目的AI论文网站&#xff0c;如何选择真正适合自己需求的…

作者头像 李华