news 2026/6/26 8:38:31

LeetCode 19 删除链表的倒数第 N 个结点(快慢指针经典题)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 19 删除链表的倒数第 N 个结点(快慢指针经典题)

LeetCode 19 删除链表的倒数第 N 个结点(快慢指针经典题)

题目描述

给你一个链表,删除链表的倒数第 N 个节点,并返回链表头节点。

要求:

  • 只能遍历一次链表;
  • 时间复杂度 O(n)。

一、核心思路

删除一个节点,本质上需要找到:

待删除节点的前驱节点

例如:

1 -> 2 -> 3 -> 4 -> 5

删除倒数第2个节点:

1 -> 2 -> 3 -> 5

真正需要找到的是:

节点3

因为:

3.next=5

即可完成删除。


二、为什么想到快慢指针?

如果:

fast

先走 N 步。

然后:

fast slow

一起走。

那么:

fast 和 slow 永远相差 N 个节点。

当:

fast

到达末尾时:

slow

正好停在待删除节点的前驱位置。


三、为什么需要 Dummy?

如果删除的是头节点:

1 -> 2 -> 3

删除倒数第3个:

2 -> 3

头节点发生变化。

为了统一逻辑:

dummy=ListNode(0,head)

这样:

dummy -> 1 -> 2 -> 3

删除任何节点都有前驱。


四、完整代码

classSolution:defremoveNthFromEnd(self,head,n):dummy=ListNode(0,head)slow=dummy fast=dummyfor_inrange(n):fast=fast.nextwhilefast.next:slow=slow.nextfast=fast.nextslow.next=slow.next.nextreturndummy.next

五、复杂度分析

时间复杂度

O(n)

只遍历一次链表。

空间复杂度

O(1)

只使用有限几个指针变量。


六、高频易错点

1、忘记使用 Dummy

删除头节点时容易出错。


2、快指针先走 n+1 步

会导致慢指针位置错误。


3、删除时写错

正确:

slow.next=slow.next.next

错误:

slow=slow.next.next

七、一句话总结

快指针先走 N 步,快慢同速前进;快到末尾时,慢指针正好位于待删除节点的前驱位置。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 8:36:48

做公开资料整理时,别忽略“失败记录”

以前做公开资料整理时,我有一个坏习惯:只看后面生成的表格。只要表格里有数据,就默认任务成功了。后来有一次做行业信息汇总,才发现这个习惯很危险。 当时我需要整理一些公开页面里的标题、分类和更新时间。任务跑完后表格看起来…

作者头像 李华
网站建设 2026/6/26 8:35:31

封切热收缩包装机PLC数据采集解决方案

在包装产线向自动化、智能化升级的过程中,封切热收缩包装机作为后道包装的核心设备,其运行稳定性与能耗水平直接影响产线综合效率(OEE)与生产成本。目前,许多包装车间的封切热收缩包装机虽已配备PLC控制系统&#xff0…

作者头像 李华
网站建设 2026/6/26 8:35:21

SQL报错注入原理与实战:从updatexml到sqlmap的攻防演练

1. 项目概述:从“报错”中榨取信息在安全测试和渗透测试的日常工作中,SQL注入无疑是Web应用安全领域最经典、也最常被提及的漏洞之一。而“报错注入”,作为SQL注入技术中一种极为高效且优雅的手法,其核心思想并非直接获取数据&…

作者头像 李华
网站建设 2026/6/26 8:33:23

ARM64嵌入式平台Docker容器化部署:内核Netfilter配置与存储优化实践

1. 项目概述与核心价值 在ARM64架构的嵌入式开发板上折腾容器化部署,听起来像是把大象塞进冰箱,但实际做下来,你会发现这恰恰是发挥这类硬件潜力的绝佳方式。我手头这块基于NXP QorIQ LS1046A的板子,资源说不上富裕,但…

作者头像 李华
网站建设 2026/6/26 8:33:12

零基础简易财务落地烘焙连锁,安仕达实现全链路业财一体化管理

摘要烘焙门店原料繁杂、生产损耗难核算、多门店分散经营,传统手工财务存在记账繁琐、成本失真、对账低效等痛点。安仕达自 2006 年深耕烘焙信息化,内置轻量化简易财务模块,依托 60 应用模块、云原生构件化架构打通采购、仓储、生产、门店销售…

作者头像 李华
网站建设 2026/6/26 8:28:56

【单片机毕业设计】基于 STM32 的气象数据采集与声光报警系统实现,基于 STM32 的自动预警气象监测设备设计,气象站物联网系统(010601)

文章目录20 个相关毕业设计备选题目项目研究背景总体方案一、硬件设备清单二、硬件整体架构核心功能一、数据采集基础功能二、数据显示核心功能三、人机交互与报警功能技术路线项目演示关于我们项目案例源码获取博主介绍:✌️码农一枚 ,专注于大学生项目…

作者头像 李华