将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

思路

  1. 建立一个虚拟节点作为头结点,简化边界情况的处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var mergeTwoLists = function (list1, list2) {
const dummyHead = new ListNode()
let cur = dummyHead
while (list1 && list2) {
if (list1.val < list2.val) {
cur.next = list1
list1 = list1.next
} else {
cur.next = list2
list2 = list2.next
}
cur = cur.next
}
if (list1) {
cur.next = list1
}
if (list2) {
cur.next = list2
}
return dummyHead.next
}