面试算法-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;
    }
}
相关推荐
Chandler241 分钟前
LeetCode 热题 100 堆
算法·leetcode
Listennnn5 分钟前
EM算法到底是什么东东
人工智能·算法·机器学习
凌览6 分钟前
你记得住密码吗?四款密码管理产品推荐
前端·后端·面试
Y1nhl15 分钟前
Pyspark学习二:快速入门基本数据结构
大数据·数据结构·python·学习·算法·hdfs·pyspark
独好紫罗兰25 分钟前
洛谷题单3-P1423 小玉在游泳-python-流程图重构
开发语言·python·算法
清风孤月残酌25 分钟前
Java中的锁,锁的究竟是什么?
后端·面试
零零壹1134 分钟前
Swagger 中的 x-nullable 是什么意思?
前端·后端·面试
曦月逸霜39 分钟前
第十四届蓝桥杯省赛真题解析(含C++详细源码)
c++·算法·蓝桥杯
Aska_Lv1 小时前
生产问题讨论---4C8G的机器,各项系统指标,什么范围算是正常
后端·面试·架构
hhope1 小时前
🚀 Vue 3 性能优化“骚操作” & Webpack/Vite 加速秘籍 (大白话版)
前端·javascript·面试