Skip to content

Commit dbf2734

Browse files
committed
Reverse Nodes in K Group Solution
1 parent 2a7ca51 commit dbf2734

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

24-reverseNodesInKGroup.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
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+
var reverseKGroup = function (head, k) {
14+
if (head === null) {
15+
return null;
16+
}
17+
18+
reverseNextKNodes = (head) => {
19+
let node = head;
20+
let arr = [];
21+
for (let i = 0; i < k; i++) {
22+
if (node === null) {
23+
return head;
24+
}
25+
arr.push(node);
26+
node = node.next;
27+
}
28+
let nextHead = arr[k - 1].next;
29+
for (let i = arr.length - 1; i >= 1; i--) {
30+
arr[i].next = arr[i - 1];
31+
}
32+
arr[0].next = reverseNextKNodes(nextHead);
33+
return arr[k - 1];
34+
};
35+
36+
return reverseNextKNodes(head);
37+
};
38+
39+
function ListNode(val, next) {
40+
this.val = val === undefined ? 0 : val;
41+
this.next = next === undefined ? null : next;
42+
}
43+
44+
f = new ListNode(9);
45+
e = new ListNode(8, f);
46+
d = new ListNode(7, e);
47+
c = new ListNode(6, d);
48+
b = new ListNode(5, c);
49+
a = new ListNode(4, b);
50+
51+
printLinkedList = (head) => {
52+
let result = [];
53+
let node = head;
54+
while (node !== null) {
55+
result.push(node);
56+
node = node.next;
57+
}
58+
59+
console.log(result);
60+
};
61+
62+
printLinkedList(reverseKGroup(a, 4));

0 commit comments

Comments
 (0)