面试算法-162-删除链表的倒数第 N 个结点

题目

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

示例 1:

输入:head = [1,2,3,4,5], n = 2

输出:[1,2,3,5]

java 复制代码
class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        ListNode p1 = dummy;
        ListNode p2 = dummy;
        for (int i = 0; i < n; i++) {
            p2 = p2.next;
        }

        while (p2 != null && p2.next != null) {
            p1 = p1.next;
            p2 = p2.next;
        }
        p1.next = p1.next.next;
        return dummy.next;
    }
}
相关推荐
我叫黑大帅44 分钟前
从奶奶挑菜开始:手把手教你搞懂“TF-IDF”
人工智能·python·算法
傻豪1 小时前
【Hot100】贪心算法
算法·贪心算法
黑色的山岗在沉睡2 小时前
LeetCode 3665. 统计镜子反射路径数目
算法·leetcode·职场和发展
是阿建吖!2 小时前
【动态规划】回文串问题
算法·动态规划
纵有疾風起3 小时前
数据结构——二叉树
c语言·数据结构·算法·链表
liang_jy3 小时前
抽象工厂模式
android·设计模式·面试
艾醒3 小时前
大模型面试题剖析:全量微调与 LoRA 微调
人工智能·python·算法
ZHOU_WUYI3 小时前
介绍GSPO:一种革命性的语言模型强化学习算法
人工智能·算法·语言模型
liang_jy3 小时前
工厂方法模式
android·设计模式·面试
listhi5203 小时前
三电平逆变器SVPWM控制(无解耦功能)与谐波分析
算法·机器学习·支持向量机