Copy List with Random Pointer LeetCode solution in JavaScript

1
var copyRandomList = function (head) {
2
if (!head) return head;
3
let curr = head;
4

5
// manipulate the Linked List and store a copy node at every nod's next
6
while (curr != null) {
7
let next = curr.next;
8
curr.next = new Node(curr.val);
9
curr.next.next = next;
10
curr = next;
11
}
12
// console.log(head)
13

14
// Setting random point of copied node according to original node
15
curr = head;
16
while (curr != null && curr.next != null) {
17
if (curr.random) {
18
curr.next.random = curr.random.next;
19
} else {
20
curr.next.random = null;
21
}
22
curr = curr.next.next;
23
}
24
// console.log(head.next.next.next)
25

26
// break the like made for linking copy node with original node
27
curr = head;
28
let ans = head.next;
29

30
while (curr != null) {
31
let temp = curr.next;
32
if (temp) {
33
curr.next = temp.next;
34
curr = curr.next;
35
}
36
if (curr) {
37
temp.next = curr.next;
38
temp = temp.next;
39
}
40
}
41
return ans;
42
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0