Merge Two Sorted Lists LeetCode solution in JavaScript

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} list1
10
* @param {ListNode} list2
11
* @return {ListNode}
12
*/
13
var mergeTwoLists = function (list1, list2) {
14
if (!list1) return list2;
15
if (!list2) return list1;
16

17
let mergedList = new ListNode(0);
18
let ptr = mergedList;
19
let curr1 = list1;
20
let curr2 = list2;
21

22
while (curr1 && curr2) {
23
let newNode = new ListNode();
24
if (!curr2 || curr1.val < curr2.val) {
25
newNode.val = curr1.val;
26
newNode.next = null;
27
ptr.next = newNode;
28
curr1 = curr1.next;
29
} else {
30
newNode.val = curr2.val;
31
newNode.next = null;
32
ptr.next = newNode;
33
curr2 = curr2.next;
34
}
35

36
ptr = ptr.next;
37
}
38

39
if (curr1 !== null) {
40
ptr.next = curr1;
41
curr1 = curr1.next;
42
}
43

44
if (curr2 !== null) {
45
ptr.next = curr2;
46
curr2 = curr2.next;
47
}
48

49
return mergedList.next;
50
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0