Skip to content

Commit f562340

Browse files
committed
Merge Two Sorted Lists
1 parent 2359fd8 commit f562340

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* class ListNode {
4+
* val: number
5+
* next: ListNode | null
6+
* constructor(val?: number, next?: ListNode | null) {
7+
* this.val = (val===undefined ? 0 : val)
8+
* this.next = (next===undefined ? null : next)
9+
* }
10+
* }
11+
*/
12+
13+
function mergeTwoLists(list1: ListNode | null, list2: ListNode | null): ListNode | null {
14+
if (!list1 || !list2) {
15+
return list1 ?? list2;
16+
}
17+
function merge(node1: ListNode | null, node2: ListNode | null) {
18+
if (!node1 || !node2) {
19+
return node1 ?? node2;
20+
}
21+
if (node1.val < node2.val) {
22+
node1.next = merge(node1.next, node2);
23+
}
24+
if (node1.val >= node2.val) {
25+
node2.next = merge(node1, node2.next);
26+
}
27+
28+
return node1.val < node2.val ? node1 : node2;
29+
}
30+
return merge(list1, list2);
31+
}
32+
33+
class ListNode {
34+
val: number;
35+
next: ListNode | null;
36+
constructor(val?: number, next?: ListNode | null) {
37+
this.val = val === undefined ? 0 : val;
38+
this.next = next === undefined ? null : next;
39+
}
40+
}

0 commit comments

Comments
 (0)