LeetCode19 删除链表的倒数第 N 个结点

LeetCode19 删除链表的倒数第 N 个结点

题目链接:LeetCode19

描述

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

image-20241125174414360

示例

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

思路

定义fast指针和slow指针,初始值为虚拟头结点

fast首先走n + 1步

fast和slow同时移动,直到fast指向末尾

删除slow指向的下一个节点

代码

class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode dummy = new ListNode();
dummy.next = head;
ListNode fast = dummy;
ListNode slow = dummy;
while(n-- >= 0){
fast = fast.next;
}
while(fast != null){
slow = slow.next;
fast = fast.next;
}
slow.next = slow.next.next;
return dummy.next;
}
}
posted @   dwhere  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示