力扣:19.删除链表的倒数第 N 个结点

cpp 复制代码
class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        ListNode *dummy = new ListNode( 0 );
        dummy->next = head;
        ListNode *fast = dummy;
        ListNode *slow = dummy;
        for ( int i = 0; i < n + 1; i++ ) {
            fast = fast->next;
        }
        while ( fast != nullptr ) {
            fast = fast->next;
            slow = slow->next;
        }
        ListNode *del = slow->next;
        slow->next = slow->next->next;
        delete del;
        return dummy->next;
    }
};
  1. 删除倒数第 N 个结点;
  2. 先让 fast 领先 N + 1 个单位,当 fast 为空,slow 和 fast 中间隔了 N 个结点,slow 是待删除结点的前驱;
  3. slow 的后继指向后继的后继,然后删除后继,释放内存。
相关推荐
猎头南楼34 分钟前
杭州算法工程师,偏大模型应用落地
算法
间歇性努力持续性发呆的野生快乐选手39 分钟前
二分模板(整型,浮点型)
数据结构·c++·算法
evans在进步43 分钟前
LeetCode 189 轮转数组:三次反转为什么能实现右旋?
数据结构·算法·leetcode
豆沙沙包?1 小时前
函数重载/类和对象(P14-P60)
前端·算法
lingchen19061 小时前
用MATLAB r2010b和r2016b求解微分方程组
开发语言·算法·matlab
无定义_2 小时前
Dijkstra——单源最短路径
算法·图论
weixin_307779132 小时前
AI生成代码的隐患与治理:人工审查流程及提示词驱动的修复策略
开发语言·人工智能·算法
zmzb01032 小时前
C++课后习题训练记录Day201
c++·算法·图论
lch2011_yb2 小时前
CSP-J 2023 小苹果
算法
星星.7222 小时前
【图论】最小生成树|Prim+Kruskal算法
数据结构·c++·算法·图论