删除链表倒数第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;
    }
};
相关推荐
m0_672703312 小时前
上机练习第51天
数据结构·c++·算法
仰泳的熊猫3 小时前
题目2577:蓝桥杯2020年第十一届省赛真题-走方格
数据结构·c++·算法·蓝桥杯
灰色小旋风3 小时前
力扣13 罗马数字转整数
数据结构·c++·算法·leetcode
ccLianLian5 小时前
数论·欧拉函数
数据结构·算法
会编程的土豆6 小时前
C++中的 lower_bound 和 upper_bound:一篇讲清楚
java·数据结构·算法
HUTAC6 小时前
关于进制转换及其应用的算法题总结
数据结构·c++·算法
小刘不想改BUG6 小时前
LeetCode 138.随机链表的复制 Java
java·leetcode·链表·hash table
XW01059996 小时前
6-函数-1 使用函数求特殊a串数列和
数据结构·python·算法
沉鱼.446 小时前
枚举问题集
java·数据结构·算法
罗超驿7 小时前
Java数据结构_栈_算法题
java·数据结构·