news 2026/9/6 4:38:59

LeetCode19.删除链表的倒数第N个结点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode19.删除链表的倒数第N个结点

题目

代码

class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* dummyHead = new ListNode(0); //因为删除的可能是头结点,所以用虚拟头结点更方便,避免分类讨论 dummyHead->next = head; ListNode* slow = dummyHead; ListNode* fast = dummyHead; while(fast!=NULL&&n--){//防止操作空指针 fast=fast->next; } fast=fast->next; while(fast!=NULL){ fast=fast->next; slow=slow->next; } slow->next=slow->next->next;//删节点操作 return dummyHead->next; } };

思路

快慢指针结合虚拟头结点。利用快慢指针实现对链表的遍历,解决链表无法定位“倒数第N个结点”的痛点,因为当快指针到达链表末尾的时候,慢指针正好位于要删除的结点的前一个~我们直接一个 slow->next=slow->next->next;就可以实现删除操作啦~至于虚拟头结点的存在,是为了避免链表只有一个结点的情况,这样的话就不需要特殊讨论了,有个dummyhead比较方便统一写代码~

小结

1.为啥会出现多出来的一行fast=fast->next?让fast实际比slow多走n+1步,因为最终我们的slow其实是在被删除结点前的位置哦~

2. while(fast!=NULL&&n--)指的是: fast 不为空且n>0

3.快慢指针一般用于什么时候?

✅️链表,不知道长度,要找倒数 / 中间位置(本题就是显而易见啊!!)

✅️判断链表有没有环(这个有印象!之前数据结构里有个约瑟夫问题感觉就能用上)

✅️要求链表一趟遍历完成,不能扫两遍

4.虚拟头结点什么时候用?什么时候不用?

题目行为是否推荐 dummyHead
删除结点,有可能删原头✅ 用
新建链表,尾插法拼接结点✅ 用
查询、遍历、求长度、找中点、判环❌ 不用
链表反转可选(大部分写法不用)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 4:37:02

本地音视频处理实战:FFmpeg与Demucs实现音轨分离与格式转换

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 4:35:30

AI Agent入门:不囤教程,动手跑通最小闭环是关键

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 4:35:24

USDS 2.0 × ATIA v2 代码接口规范——面向多智能体求真系统架构设计的“最小但完整”工程接口蓝图

标题USDS 2.0 ATIA v2 代码接口规范——面向多智能体求真系统架构设计的“最小但完整”工程接口蓝图摘要本规范正式发布USDS 2.0 ATIA v2代码接口规范——一份面向架构设计与多智能体系统实现的工程接口蓝图,而非抽象概念描述。规范遵循三项核心设计原则&#xff…

作者头像 李华
网站建设 2026/9/6 4:28:05

整车在环(ViL)测试:从仿真到实车的关键一跃

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 4:25:52

AI音频超分修复:老磁带与低质MP3如何进阶CD级音质

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 4:22:33

AI舞蹈生成技术解析:从音乐分析到动作合成的完整实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华