[力扣 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;
    }
};
相关推荐
CQU_JIAKE8 分钟前
5.7【A】
算法
2zcode9 分钟前
基于SVM与HOG算法的行人检测系统设计与实现
算法·机器学习·支持向量机
MATLAB代码顾问13 分钟前
MATLAB实现粒子群算法优化PID参数
开发语言·算法·matlab
翎沣17 分钟前
C++11异常处理机制
java·c++·算法
火花怪怪23 分钟前
Origin分析外量子效率(EQE, External Quantum Efficiency)数据处理-EQE计算带隙
算法·数据分析
上弦月-编程24 分钟前
异或法巧解数组中两独数
数据结构·算法
risc12345625 分钟前
维特比算法(Viterbi Algorithm)
算法
Black蜡笔小新38 分钟前
自动化AI算法训练服务器/企业AI算力工作站DLTM重塑企业AI开发模式赋能企业智能转型
人工智能·算法·自动化
科研小白_41 分钟前
【第一期:MATLAB点云处理基础】LAS点云数据导入与可视化
算法