Skip to content

Commit ae30f13

Browse files
committed
merge-two-sorted-lists solution
1 parent 8c34ca2 commit ae30f13

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

merge-two-sorted-lists/togo26.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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+
14+
// TC: O(n + m) / SC: O(1)
15+
var mergeTwoLists = function (list1, list2) {
16+
let mergeHead = null;
17+
let mergePointer = null;
18+
19+
let head1 = list1;
20+
let head2 = list2;
21+
22+
const mergeNode = node => {
23+
const temp = node.next;
24+
if (!mergeHead) {
25+
mergeHead = node;
26+
mergePointer = node;
27+
} else {
28+
mergePointer.next = node;
29+
mergePointer = mergePointer.next;
30+
}
31+
return temp;
32+
};
33+
34+
while (head1 && head2) {
35+
if (head1.val <= head2.val) {
36+
head1 = mergeNode(head1);
37+
} else {
38+
head2 = mergeNode(head2);
39+
}
40+
}
41+
42+
if (head1) mergeNode(head1);
43+
if (head2) mergeNode(head2);
44+
45+
return mergeHead;
46+
};

0 commit comments

Comments
 (0)