Skip to content

Commit 066fdb0

Browse files
committed
docs(posts): 新增删除链表倒数第N个节点题解
- 添加灵茶山艾府题单中前后指针章节的题解文件 - 提供两种解法:遍历求长度法和快慢指针法 - 包含Go语言实现代码及配图说明
1 parent 6002837 commit 066fdb0

3 files changed

Lines changed: 58 additions & 0 deletions

File tree

24.4 KB
Loading
15.2 KB
Loading
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
id: lcsaf-remove-nth-node-from-end-of-list
3+
title: 灵茶山艾府 - 删除链表倒数第N个节点
4+
excerpt:
5+
category: 算法
6+
tags:
7+
- 日常
8+
- 链表
9+
- 前后指针
10+
author: Marvel-L
11+
rank: 黄金
12+
series: false
13+
draft: false
14+
coverImage: / posts-img/算法/删除链表倒数第N个节点.png
15+
---
16+
17+
18+
```go
19+
func removeNthFromEnd(head *ListNode, n int) *ListNode {
20+
idx, cur :=0 , head
21+
for cur != nil {
22+
idx ++
23+
cur = cur.Next
24+
}
25+
length := idx
26+
idx, cur = 0 , head
27+
28+
dummy := &ListNode{Next: head}
29+
cur = dummy
30+
for cur != nil {
31+
if idx + n == length {
32+
cur.Next = cur.Next.Next
33+
}
34+
idx ++
35+
cur = cur.Next
36+
}
37+
return dummy.Next
38+
}
39+
```
40+
41+
## 前后指针 Code
42+
43+
```go
44+
func removeNthFromEnd(head *ListNode, n int) *ListNode {
45+
dummy := &ListNode{Next:head}
46+
left, right := dummy, dummy
47+
for range n {
48+
right = right.Next
49+
}
50+
for right.Next != nil {
51+
left = left.Next
52+
right = right.Next
53+
}
54+
left.Next = left.Next.Next
55+
return dummy.Next
56+
}
57+
```
58+
![img.png](img.png)

0 commit comments

Comments
 (0)