LeetCode 19. 删除链表的倒数第 N 个结点

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

解题思路

我们要删除倒数第 n 个节点,就必须找到倒数第 n+1 个节点。\
所以 fast 必须先走 n+1 步,这样当 fast 走到终点时,slow 正好在倒数第 n+1 个节点上。

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode dummy = new ListNode(0);
dummy.next = head;

ListNode fast = dummy;
ListNode slow = dummy;

for(int i = 0; i <= n; i ++) {
fast = fast.next;
}

while(fast != null) {
slow = slow.next;
fast = fast.next;
}

slow.next = slow.next.next;
return dummy.next;
}
}

LeetCode 19. 删除链表的倒数第 N 个结点
https://sowink.cn/2026/02/08/LeetCode-19-删除链表的倒数第-N-个结点/
作者
Xurx
发布于
2026年2月8日
许可协议