Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cdc7106

Browse files
committed
docs: update lcof solutions
1 parent d407887 commit cdc7106

File tree

4 files changed

+34
-29
lines changed

4 files changed

+34
-29
lines changed

‎lcof/面试题18. 删除链表的节点/README.md‎

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@
2929
- 若使用 C 或 C++ 语言,你不需要 `free``delete` 被删除的节点
3030

3131
## 解法
32+
33+
定义一个虚拟头节点 `dummy` 指向 `head`,再定义指针 `pre``p` 分别指向 `dummy``head`
34+
35+
遍历链表,`pre``p` 往后移动。当指针 `p` 指向的节点的值等于 `val` 时,将 `pre.next` 指向 `p.next`,然后返回 `dummy.next`
36+
3237
<!-- tabs:start -->
3338

3439
### **Python3**
@@ -38,21 +43,17 @@
3843
# def __init__(self, x):
3944
# self.val = x
4045
# self.next = None
41-
4246
class Solution:
4347
def deleteNode(self, head: ListNode, val: int) -> ListNode:
44-
pre = ListNode(0)
45-
pre.next = head
46-
dummy = pre
47-
p = head
48+
dummy = ListNode(0)
49+
dummy.next = head
50+
pre, p = dummy, head
4851
while p:
4952
if p.val == val:
5053
pre.next = p.next
5154
break
52-
else:
53-
pre, p = p, p.next
55+
pre, p = p, p.next
5456
return dummy.next
55-
5657
```
5758

5859
### **Java**
@@ -67,17 +68,16 @@ class Solution:
6768
*/
6869
class Solution {
6970
public ListNode deleteNode(ListNode head, int val) {
70-
ListNode pre = new ListNode(0);
71-
pre.next = head;
72-
ListNode dummy = pre, p = head;
71+
ListNode dummy = new ListNode(0);
72+
dummy.next = head;
73+
ListNode pre = dummy, p = head;
7374
while (p != null) {
7475
if (p.val == val) {
7576
pre.next = p.next;
7677
break;
77-
} else {
78-
pre = p;
79-
p = p.next;
8078
}
79+
pre = p;
80+
p = p.next;
8181
}
8282
return dummy.next;
8383
}

‎lcof/面试题18. 删除链表的节点/Solution.java‎

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
11
/**
2-
* Definition for singly-linked list. public class ListNode { int val; ListNode
3-
* next; ListNode(int x) { val = x; } }
2+
* Definition for singly-linked list.
3+
* public class ListNode {
4+
* int val;
5+
* ListNode next;
6+
* ListNode(int x) { val = x; }
7+
* }
48
*/
59
class Solution {
610
public ListNode deleteNode(ListNode head, int val) {
7-
ListNode pre = new ListNode(0);
8-
pre.next = head;
9-
ListNode dummy = pre, p = head;
11+
ListNode dummy = new ListNode(0);
12+
dummy.next = head;
13+
ListNode pre = dummy, p = head;
1014
while (p != null) {
1115
if (p.val == val) {
1216
pre.next = p.next;
1317
break;
14-
} else {
15-
pre = p;
16-
p = p.next;
1718
}
19+
pre = p;
20+
p = p.next;
1821
}
1922
return dummy.next;
2023
}

‎lcof/面试题18. 删除链表的节点/Solution.py‎

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,14 @@
33
# def __init__(self, x):
44
# self.val = x
55
# self.next = None
6-
76
class Solution:
87
def deleteNode(self, head: ListNode, val: int) -> ListNode:
9-
pre = ListNode(0)
10-
pre.next = head
11-
dummy = pre
12-
p = head
8+
dummy = ListNode(0)
9+
dummy.next = head
10+
pre, p = dummy, head
1311
while p:
1412
if p.val == val:
1513
pre.next = p.next
1614
break
17-
else:
18-
pre, p = p, p.next
15+
pre, p = p, p.next
1916
return dummy.next

‎lcof/面试题22. 链表中倒数第k个节点/README.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111
返回链表 4->5.
1212

1313
## 解法
14+
15+
定义 `p``q` 指针指向 `head`
16+
17+
`p` 先向前走 `k` 步,接着 `p``q` 同时向前走,当 `p` 指向 `null` 时,`q` 指向的节点即为链表的倒数第 `k` 个节点。
18+
1419
<!-- tabs:start -->
1520

1621
### **Python3**

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /