Skip to content

Commit 3e298cb

Browse files
committed
merge-two-sorted-lists solution
1 parent 05bea89 commit 3e298cb

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

merge-two-sorted-lists/togo26.js

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

0 commit comments

Comments
 (0)