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

[LeetCode] 19. 删除链表的倒数第 N 个结点

1. 问题描述

19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode)


2. 实现思路

2.1 自己的思路

~~(一定要写出来啊喂~

  • 先遍历一遍获取链表长度,再结合虚拟头节点删除
public class Solution
{public ListNode RemoveNthFromEnd(ListNode head, int n){var dummyHead = new ListNode(0, head);var preHead = dummyHead;var temp = dummyHead;int count = 0;while (temp.next != null){count++;temp = temp.next;}for (int i = 0; i < count - n; i++)preHead = preHead.next;preHead.next = preHead.next?.next;return dummyHead.next;}
}

2.2 题解思路

19.删除链表的倒数第N个节点 | 双指针 | 虚拟头节点

双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。

public class Solution {public ListNode RemoveNthFromEnd(ListNode head, int n) {ListNode dummpHead = new ListNode(0);dummpHead.next = head;var fastNode = dummpHead;var slowNode = dummpHead;while(n-- != 0 && fastNode != null){fastNode = fastNode.next;}while(fastNode.next != null){fastNode = fastNode.next;slowNode = slowNode.next;}slowNode.next = slowNode.next.next;return dummpHead.next;}
}
  • 时间复杂度: O(n)
  • 空间复杂度: O(1)

2.3 优化(或者敲一遍题解?)

好的也是很经典的双指针啊

public class Solution
{public ListNode RemoveNthFromEnd(ListNode head, int n){var dummyHead = new ListNode(0, head);var fast = dummyHead.next;var slow = dummyHead;while (n-- != 0)fast = fast.next ?? null;while (fast != null){fast = fast.next;slow = slow.next;}slow.next = slow.next?.next;return dummyHead.next;}
}

3. 补充知识と杂谈,总结

不过有一说一,也是第一次花十多分钟解出一个mid难度的题,虽然离最优解还差一些距离

但从写完这篇笔记来看一共花了二十四分钟,嗯嗯以后也继续保持叭~每个题都控制在半个小时以内喵

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

相关文章:

  • JDK 25 LTS发布:核心特性与生产环境实践指南
  • MDTraj核心功能详解:从RMSD计算到氢键分析的7大实用技巧
  • 魔兽世界宏编辑器终极指南:GSE智能宏系统完整教程
  • FlicFlac音频格式转换工具:5分钟快速上手的完整指南
  • SAP-ABAP:程序内存优化——内表滥用、内存泄漏、大对象占用的排查与优化方案
  • 2026 职场人做会议纪要:录音转文字神器核心使用场景指南
  • Anki同步限制终极解决方案:突破集合大小限制的完整指南
  • 解决Windows安装OpenClaw错误1006的完整指南
  • Python进阶 - 迭代器的遍历 手动调用next方法与StopIteration异常
  • 2026年电缆桥架行业优质供应商概览:哈尔滨兴发电气成套设备有限公司携多厂商构建全场景输配电解决方案 - 优企名品
  • UE4/UE5游戏启动显示模式配置详解:DefaultGameUserSettings.ini完全指南
  • 免费下载B站大会员4K视频:Python开源工具完整指南
  • OCAT:3分钟搞定OpenCore配置,告别黑苹果引导烦恼
  • ComfyUI-nunchaku完全指南:如何通过4位量化技术实现AI绘画性能翻倍
  • 虚拟机网站建设全攻略:从零基础入门到高效运维的真心话
  • Aimsun交通仿真软件API接口开发与应用实践
  • 如何高效配置RPFM:解决Total War游戏数据完整性的专业方案
  • AI 写完了,别人却看不到:Vibe Coding 作品如何秒级公开
  • Redis 系列(四):底层实现(二)——List、Set、ZSet 与 Stream 的数据结构
  • 如何用一行代码获取2000+金融数据源?AKShare免费财经数据接口库完全指南
  • 2026年08月440C滚针生产厂家——慈溪市胜旺机械有限公司专业制造解析 - 卓企推荐
  • ansible-redis离线安装:从本地tarball部署Redis的详细步骤
  • 2026上新:隆回县除甲醛收费大公开:邵阳森呼吸环保与连锁品牌性价比实测 - 专注室内空气检测治理
  • 岚山网站建设报价揭秘:从入门到高端,如何避开装修行业的隐形深坑
  • KMS_VL_ALL_AIO:终极智能激活解决方案 - 轻松解锁Windows和Office完整功能
  • 终极戴尔笔记本风扇控制指南:3个简单步骤实现智能散热管理
  • AI时代工程师转型:从CRUD到AI原生应用与系统集成的三大方向
  • 基于WaveletPool改进的YOLOv8妇科MRI孕周检测算法
  • HTTP/HTTPS协议详解与安全机制剖析
  • YimMenu终极配置指南:如何构建安全的GTA V游戏体验