Skip to content

Commit 977b537

Browse files
committed
feat: update leetcode and lcci solutions
1 parent ffb91b8 commit 977b537

File tree

11 files changed

+128
-41
lines changed

11 files changed

+128
-41
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242

4343
1. [从尾到头打印链表](./lcof/面试题06.%20从尾到头打印链表/README.md)
4444
1. [删除链表的节点](./lcof/面试题18.%20删除链表的节点/README.md)
45-
1. [链表中倒数第 k 个节点](./lcof/面试题22.%20链表中倒数第k个节点/README.md)
45+
1. [链表中倒数第 k 个节点](./lcci/02.02.Kth%20Node%20From%20End%20of%20List/README.md)
4646
1. [反转链表](./solution/0200-0299/0206.Reverse%20Linked%20List/README.md)
4747
1. [环形链表](./solution/0100-0199/0141.Linked%20List%20Cycle/README.md)
4848
1. [环形链表 II](./solution/0100-0199/0142.Linked%20List%20Cycle%20II/README.md)

README_EN.md

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ Complete solutions to [LeetCode](https://leetcode-cn.com/problemset/all/), [LCOF
3939

4040
### Linked List
4141

42+
1. [Delete Node in a Linked List](./solution/0200-0299/0237.Delete%20Node%20in%20a%20Linked%20List/README_EN.md)
43+
1. [Kth Node From End of List](./lcci/02.02.Kth%20Node%20From%20End%20of%20List/README_EN.md)
4244
1. [Reverse Linked List](./solution/0200-0299/0206.Reverse%20Linked%20List/README_EN.md)
4345
1. [Linked List Cycle](./solution/0100-0199/0141.Linked%20List%20Cycle/README_EN.md)
4446
1. [Linked List Cycle II](./solution/0100-0199/0142.Linked%20List%20Cycle%20II/README_EN.md)

lcci/02.02.Kth Node From End of List/README.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
## 解法
2222
<!-- 这里可写通用的实现逻辑 -->
2323

24+
定义 `p``q` 指针指向 `head`
25+
26+
`p` 先向前走 `k` 步,接着 `p``q` 同时向前走,当 `p` 指向 `null` 时,`q` 指向的节点即为链表的倒数第 `k` 个节点。
27+
2428

2529
<!-- tabs:start -->
2630

@@ -40,8 +44,7 @@ class Solution:
4044
for _ in range(k):
4145
q = q.next
4246
while q:
43-
q = q.next
44-
p = p.next
47+
p, q = p.next, q.next
4548
return p.val
4649
```
4750

lcci/02.02.Kth Node From End of List/README_EN.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ class Solution:
4848
for _ in range(k):
4949
q = q.next
5050
while q:
51-
q = q.next
52-
p = p.next
51+
p, q = p.next, q.next
5352
return p.val
5453
```
5554

lcci/02.02.Kth Node From End of List/Solution.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,5 @@ def kthToLast(self, head: ListNode, k: int) -> int:
1010
for _ in range(k):
1111
q = q.next
1212
while q:
13-
q = q.next
14-
p = p.next
13+
p, q = p.next, q.next
1514
return p.val

solution/0200-0299/0237.Delete Node in a Linked List/README.md

+47-8
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88

99
<p>现有一个链表 --&nbsp;head =&nbsp;[4,5,1,9],它可以表示为:</p>
1010

11-
<p><img alt="" src="https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2019/01/19/237_example.png" style="height: 49px; width: 300px;"></p>
12-
13-
<p>&nbsp;</p>
11+
![](./images/237_example.png)
1412

1513
<p><strong>示例 1:</strong></p>
1614

@@ -49,19 +47,60 @@
4947
<!-- 这里可写当前语言的特殊实现逻辑 -->
5048

5149
```python
52-
50+
# Definition for singly-linked list.
51+
# class ListNode:
52+
# def __init__(self, x):
53+
# self.val = x
54+
# self.next = None
55+
56+
class Solution:
57+
def deleteNode(self, node):
58+
"""
59+
:type node: ListNode
60+
:rtype: void Do not return anything, modify node in-place instead.
61+
"""
62+
node.val = node.next.val
63+
node.next = node.next.next
5364
```
5465

5566
### **Java**
5667
<!-- 这里可写当前语言的特殊实现逻辑 -->
5768

5869
```java
59-
60-
```
61-
62-
### **...**
70+
/**
71+
* Definition for singly-linked list.
72+
* public class ListNode {
73+
* int val;
74+
* ListNode next;
75+
* ListNode(int x) { val = x; }
76+
* }
77+
*/
78+
class Solution {
79+
public void deleteNode(ListNode node) {
80+
node.val = node.next.val;
81+
node.next = node.next.next;
82+
}
83+
}
6384
```
6485

86+
### **JavaScript**
87+
88+
```javascript
89+
/**
90+
* Definition for singly-linked list.
91+
* function ListNode(val) {
92+
* this.val = val;
93+
* this.next = null;
94+
* }
95+
*/
96+
/**
97+
* @param {ListNode} node
98+
* @return {void} Do not return anything, modify node in-place instead.
99+
*/
100+
var deleteNode = function(node) {
101+
node.val = node.next.val
102+
node.next = node.next.next
103+
};
65104
```
66105

67106
<!-- tabs:end -->

solution/0200-0299/0237.Delete Node in a Linked List/README_EN.md

+46-10
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,10 @@
6060

6161

6262
<ul>
63-
6463
<li>The linked list will have at least two elements.</li>
65-
6664
<li>All of the nodes&#39; values will be unique.</li>
67-
6865
<li>The given node&nbsp;will not be the tail and it will always be a valid node of the linked list.</li>
69-
7066
<li>Do not return anything from your function.</li>
71-
7267
</ul>
7368

7469

@@ -82,18 +77,59 @@
8277
### **Python3**
8378

8479
```python
85-
80+
# Definition for singly-linked list.
81+
# class ListNode:
82+
# def __init__(self, x):
83+
# self.val = x
84+
# self.next = None
85+
86+
class Solution:
87+
def deleteNode(self, node):
88+
"""
89+
:type node: ListNode
90+
:rtype: void Do not return anything, modify node in-place instead.
91+
"""
92+
node.val = node.next.val
93+
node.next = node.next.next
8694
```
8795

8896
### **Java**
8997

9098
```java
91-
92-
```
93-
94-
### **...**
99+
/**
100+
* Definition for singly-linked list.
101+
* public class ListNode {
102+
* int val;
103+
* ListNode next;
104+
* ListNode(int x) { val = x; }
105+
* }
106+
*/
107+
class Solution {
108+
public void deleteNode(ListNode node) {
109+
node.val = node.next.val;
110+
node.next = node.next.next;
111+
}
112+
}
95113
```
96114

115+
### **JavaScript**
116+
117+
```javascript
118+
/**
119+
* Definition for singly-linked list.
120+
* function ListNode(val) {
121+
* this.val = val;
122+
* this.next = null;
123+
* }
124+
*/
125+
/**
126+
* @param {ListNode} node
127+
* @return {void} Do not return anything, modify node in-place instead.
128+
*/
129+
var deleteNode = function(node) {
130+
node.val = node.next.val
131+
node.next = node.next.next
132+
};
97133
```
98134

99135
<!-- tabs:end -->
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* public class ListNode {
4+
* int val;
5+
* ListNode next;
6+
* ListNode(int x) { val = x; }
7+
* }
8+
*/
19
class Solution {
210
public void deleteNode(ListNode node) {
3-
// 保存下一个结点
4-
ListNode tmp = node.next;
5-
6-
// 将下个结点的值赋给当前要删除的结点
711
node.val = node.next.val;
812
node.next = node.next.next;
9-
10-
// tmp 置为空,让jvm进行垃圾回收
11-
tmp = null;
12-
1313
}
1414
}
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
1-
const deleteNode = function(node){
2-
node.val = node.next.val;
3-
node.next = node.next.next;
4-
}
1+
/**
2+
* Definition for singly-linked list.
3+
* function ListNode(val) {
4+
* this.val = val;
5+
* this.next = null;
6+
* }
7+
*/
8+
/**
9+
* @param {ListNode} node
10+
* @return {void} Do not return anything, modify node in-place instead.
11+
*/
12+
var deleteNode = function(node) {
13+
node.val = node.next.val
14+
node.next = node.next.next
15+
};

solution/0200-0299/0237.Delete Node in a Linked List/Solution.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,5 @@ def deleteNode(self, node):
1010
:type node: ListNode
1111
:rtype: void Do not return anything, modify node in-place instead.
1212
"""
13-
tmp=node.next
14-
node.val=tmp.val
15-
node.next=tmp.next
16-
13+
node.val = node.next.val
14+
node.next = node.next.next
Loading

0 commit comments

Comments
 (0)