删除链表倒数第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;
    }
};
相关推荐
好奇龙猫几秒前
【大学院-筆記試験練習:线性代数和数据结构(5)】
数据结构·线性代数
爱吃生蚝的于勒9 分钟前
【Linux】进程间通信之匿名管道
linux·运维·服务器·c语言·数据结构·c++·vim
寻星探路22 分钟前
【算法专题】哈希表:从“两数之和”到“最长连续序列”的深度解析
java·数据结构·人工智能·python·算法·ai·散列表
!停39 分钟前
C语言单链表
c语言·数据结构·算法
!停1 小时前
C语言栈和队列的实现
开发语言·数据结构
蓝桉~MLGT1 小时前
中级软考(软件工程师)第三章知识点——数据结构与数据运算
数据结构
代码游侠1 小时前
学习笔记——ESP8266 WiFi模块
服务器·c语言·开发语言·数据结构·算法
0和1的舞者1 小时前
Python 中四种核心数据结构的用途和嵌套逻辑
数据结构·python·学习·知识
yuniko-n1 小时前
【牛客面试 TOP 101】链表篇(二)
算法·链表·职场和发展
乌萨奇也要立志学C++12 小时前
【洛谷】递归初阶 三道经典递归算法题(汉诺塔 / 占卜 DIY/FBI 树)详解
数据结构·c++·算法