(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;
    }
相关推荐
Chester_19991 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
裕晟资质规划2 小时前
武器装备科研生产单位保密资质申请方法论:条件模型与流程拆解
人工智能·算法
是隼人4 小时前
buuctf-pwn xdctf2015_pwn200题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
en.en..4 小时前
C语言 标准输入 / 输出缓冲区
算法
大衛說4 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
吃好睡好便好5 小时前
查找函数的使用
学习·算法·matlab·生活·查找函数
学习星球5 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
学运维的Kysan6 小时前
暑假运维学习打卡第二十九天8.29
学习
zbyyd6 小时前
Linux 进程间通信学习笔记
linux·笔记·学习
专注仿真6 小时前
Spring AI 实现智能对话系统项目指南
数据结构·spring·机器学习