LeetCode热题100-删除链表的倒数第 N 个结点

给你一个链表,删除链表的倒数第 n个结点,并且返回链表的头结点。

示例 1:

复制代码
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]

核心技巧

  1. 虚拟头结点 dummy :规避删除头节点的边界问题
  2. 快慢指针 :快指针先走 n+1 步,然后快慢同速往后走
  3. 快指针走到末尾时,慢指针刚好在倒数第 n 个节点的前驱
  4. 直接 slow.next = slow.next.next 跳过要删的节点
python 复制代码
class Solution:
    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
        dummy = ListNode(0, head)
        fast = slow = dummy

        for _ in range(n + 1):
            fast = fast.next
        
        while fast:
            fast = fast.next
            slow = slow.next
        slow.next = slow.next.next
        return dummy.next
相关推荐
列星随旋7 小时前
矩阵快速幂
java·算法·矩阵
z200509307 小时前
今日算法(回溯全排列)
c++·算法·leetcode
Boom_Shu7 小时前
构造函数程序
数据结构·算法
MicroTech20257 小时前
微算法科技(NASDAQ: MLGO)量子安全与区块链:量子神经网络QNN赋能动态共识与量子密钥分发
科技·算法·安全
Lucky_ldy7 小时前
数据结构从入门到精通:链表
数据结构·链表
sali-tec7 小时前
C# 基于OpenCv的视觉工作流-章81-弯脚检测
图像处理·人工智能·opencv·算法·计算机视觉
kkeeper~7 小时前
0基础C语言积跬步之自定义类型联合和枚举
c语言·开发语言·算法
昵称好难啊7 小时前
4.OpenClaw源码解析_路由的概念
人工智能·算法
Bingorl7 小时前
机器学习之KNN算法
人工智能·算法·机器学习
muddjsv7 小时前
《算法导论》入门学习路径:从零基础到系统掌握
学习·算法