Skip to content

Commit 066cf1d

Browse files
committed
feat: 25. Reverse Nodes in k-Group : 链表
1 parent 4a74c41 commit 066cf1d

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* function ListNode(val, next) {
4+
* this.val = (val===undefined ? 0 : val)
5+
* this.next = (next===undefined ? null : next)
6+
* }
7+
*/
8+
/**
9+
* @param {ListNode} head
10+
* @param {number} k
11+
* @return {ListNode}
12+
*/
13+
const reverseKGroup = function (head, k) {
14+
let sz = 0
15+
let a = head
16+
while (a) sz++, a = a.next
17+
18+
const dummy = new ListNode(0, head)
19+
// x: dummy, y: 1
20+
let x = dummy; let y = dummy.next
21+
for (let i = 0; i < Math.floor(sz / k); i++) {
22+
a = y
23+
let b = a.next
24+
// 节点个数为 k,只需要反转 k-1 次中间的边
25+
for (let j = 0; j < k - 1; j++) {
26+
const c = b.next
27+
b.next = a
28+
a = b, b = c
29+
}
30+
// dummy -> 2, 1 -> 3
31+
x.next = a, y.next = b
32+
// x: 1, y: 3
33+
x = y, y = y.next
34+
}
35+
36+
return dummy.next
37+
}

leetcode/残酷刷题/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@
171171

172172
- 206. Reverse Linked List
173173
- 92. Reverse Linked List II
174+
- 25. Reverse Nodes in k-Group
174175

175176
## Links
176177

0 commit comments

Comments
 (0)