(leetcode学习)19. 删除链表的倒数第 N 个结点

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

示例 1:

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

示例 2:

复制代码
输入:head = [1], n = 1
输出:[]

示例 3:

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

提示:

  • 链表中结点的数目为 sz
  • 1 <= sz <= 30
  • 0 <= Node.val <= 100
  • 1 <= n <= sz

**进阶:**你能尝试使用一趟扫描实现吗?

不是很懂为什么大佬会用一个假的头节点,防止快指针为NULL吗?

cpp 复制代码
ListNode* removeNthFromEnd(ListNode* head, int n) {
        ListNode* fast = head;
        ListNode* slow = head;
        while(n--) fast=fast->next;
        if(fast == NULL) return head->next;

        while(fast->next != NULL){
            fast = fast->next;
            slow = slow->next;
        }
        slow->next = slow->next->next;
        return head;
    }
相关推荐
学嵌入式的小杨同学3 分钟前
C 语言实战:动态规划求解最长公共子串(连续),附完整实现与优化
数据结构·c++·算法·unity·游戏引擎·代理模式
rgeshfgreh6 分钟前
顺序表实战:构建到销毁全解析
算法
十八岁讨厌编程7 分钟前
【算法训练营Day32】图论专题
算法·深度优先·图论
小欣加油14 分钟前
leetcode 174 地下城游戏
c++·算法·leetcode·职场和发展·动态规划
sali-tec24 分钟前
C# 基于OpenCv的视觉工作流-章11-高斯滤波
图像处理·人工智能·opencv·算法·计算机视觉
良木生香28 分钟前
【C语言进阶】文件操作的相关详解(1):
c语言·数据结构·c++
儒雅永缘28 分钟前
Solidworks练习39-拉伸、拉伸切
笔记·学习
来两个炸鸡腿29 分钟前
【Datawhale组队学习202601】Base-NLP task01 注意力机制与Transformer
学习·自然语言处理·transformer
Ka1Yan35 分钟前
[链表] - 代码随想录 203. 移除链表元素
数据结构·链表
am心37 分钟前
学习笔记-缓存&添加购物车
笔记·学习·缓存