8000 feat(1721): 遍历链表 · descire/LeetCode@8e3b005 · GitHub
[go: up one dir, main page]

Skip to content

Commit 8e3b005

Browse files
committed
feat(1721): 遍历链表
1 parent b9cc6bd commit 8e3b005

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

Linked-List/1721/solution1.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* 时间复杂度:O(n)
3+
* 空间复杂度:O(1)
4+
*/
5+
const swapNodes = function(head, k) {
6+
let length = 0;
7+
8+
let x = null;
9+
let xPreHead = null;
10+
11+
let currentHead = head;
12+
while (currentHead) {
13+
length++;
14+
if (length === k - 1) {
15+
xPreHead = currentHead;
16+
}
17+
if (length === k) {
18+
x = currentHead;
19+
}
20+
currentHead = currentHead.next;
21+
}
22+
23+
const xSufHead = x.next;
24+
25+
let k2 = length - k;
26+
let y = null;
27+
let yPreHead = null;
28+
currentHead = head;
29+
while (k2--) {
30+
yPreHead = currentHead;
31+
currentHead = currentHead.next;
32+
}
33+
y = currentHead;
34+
const ySufHead = y.next;
35+
36+
const xval = x.val;
37+
const yval = y.val;
38+
39+
x.val = yval;
40+
y.val = xval;
41+
42+
return head;
43+
};
3186

0 commit comments

Comments
 (0)
0