[力扣 Hot100]Day29 删除链表的倒数第 N 个结点

题目描述

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

出处

思路

两个指针间隔n,一趟遍历解决。

代码

cpp 复制代码
class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        ListNode* p=head;
        ListNode* q=head;
        while(n>0){
            q=q->next;
            n--;
        }
        if(!q){
            q=p->next;
            delete(p);
            return q;
        }
        q=q->next;
        while(q){
            p=p->next;
            q=q->next;
        }
        q=p->next;
        p->next=q->next;
        delete(q);
        return head;
    }
};
相关推荐
灯澜忆梦12 小时前
GO_函数_1
算法
言乐613 小时前
Python实现建造微服务商城后台
开发语言·python·算法·微服务·架构
凉云生烟13 小时前
机器学习 02- KNN算法
人工智能·算法·机器学习
wabs66613 小时前
关于动态规划【力扣583.两个字符串的删除操作的思考】
算法·leetcode·动态规划
可编程芯片开发13 小时前
空气流量和空气压力参数解耦系统simulink建模与仿真
算法
_Doubletful14 小时前
妙用位运算:解构汉明距离至100%(提供分析与多解)
c语言·算法·leetcode
凯瑟琳.奥古斯特14 小时前
力扣1013三等分解法与C++实现
开发语言·c++·算法·leetcode·职场和发展
Keven_1114 小时前
AcWing算法提高课思路速查:搜索
算法·搜索
沙蒿同学14 小时前
当古诗词遇上 AI:从 38 万句诗词中取一个好名字
python·算法·架构
变量未定义~15 小时前
单调栈、单调队列(模板)、子矩阵(模板)
数据结构·算法·蓝桥杯