删除链表倒数第N个节点

Leetcode(19):

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

分析:

首要目标就是找到第N个节点的前一个节点,因为只有通过这个节点(cur)才可进行对第N个节点进行删除操作,即cur->next=cur->next->next;但是要是找到第N个节点不是很容易,可以使用便捷方法------快慢指针,使用时要考虑一点如何找到第N个节点的前一个节点,即将N+1,这样就可实现。

代码:

cpp 复制代码
class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        ListNode*dummyHead=new ListNode(0);
        dummyHead->next=head;
        ListNode*fast=dummyHead;
        ListNode*slow=dummyHead;
        n++;//进行+1操作,找到前一节点
        while(n--&&fast!=nullptr){
            fast=fast->next;
        }
        while(fast!=nullptr){
            fast=fast->next;
            slow=slow->next;
        }
        slow->next=slow->next->next;
        return dummyHead->next;
    }
};
相关推荐
张张努力变强4 分钟前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
wWYy.9 分钟前
数组快排 链表归并
数据结构·链表
李斯啦果37 分钟前
【PTA】L1-019 谁先倒
数据结构·算法
Mr Xu_16 小时前
告别硬编码:前端项目中配置驱动的实战优化指南
前端·javascript·数据结构
czxyvX16 小时前
017-AVL树(C++实现)
开发语言·数据结构·c++
数智工坊16 小时前
【数据结构-队列】3.2 队列的顺序-链式实现-双端队列
数据结构
elseif12317 小时前
【C++】并查集&家谱树
开发语言·数据结构·c++·算法·图论
徐小夕@趣谈前端17 小时前
Web文档的“Office时刻“:jitword共建版2.0发布!让浏览器变成本地生产力
前端·数据结构·vue.js·算法·开源·编辑器·es6
Nebula_g18 小时前
线程进阶: 无人机自动防空平台开发教程(更新)
java·开发语言·数据结构·学习·算法·无人机
xuxie9919 小时前
day 23 树
数据结构