We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 195e6f5 commit e4df61fCopy full SHA for e4df61f
Solutions/0203. 移除链表元素.md
@@ -5,15 +5,17 @@
5
6
## 题目大意
7
8
-给定一个链表。
+给定一个链表的头节点 `head` 和一个值 `val`。
9
10
要求:删除链表中值为 `val` 的节点,并返回新的链表头节点。
11
12
## 解题思路
13
14
-用两个指针 `prev` 和 `curr`。`prev` 指向前一节点和当前节点,`curr` 指向当前节点。从前向后遍历链表,遇到值为 `val` 的节点时,将 `prev` 指向当前节点的下一个节点,继续递归遍历。遇不到则更新 `prev` 指针,并继续遍历。
+- 使用两个指针 `prev` 和 `curr`。`prev` 指向前一节点和当前节点,`curr` 指向当前节点。
15
+- 从前向后遍历链表,遇到值为 `val` 的节点时,将 `prev` 的 `next` 指针指向当前节点的下一个节点,继续递归遍历。没有遇到则将 `prev` 指针向后移动一步。
16
+- 向右移动 `curr`,继续遍历。
17
-需要注意的是要删除的节点可能包含了头节点。我们可以考虑在遍历之前,新建一个头节点,让其指向原来的头节点。这样,最终如果删除的是头节点,则删除原头节点即可。返回结果的时候,可以直接返回新建头节点的下一位节点。
18
+需要注意的是:因为要删除的节点可能包含了头节点,我们可以考虑在遍历之前,新建一个头节点,让其指向原来的头节点。这样,最终如果删除的是头节点,则直接删除原头节点,然后最后返回新建头节点的下一个节点即可。
19
20
## 代码
21
0 commit comments