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 // 判断边界条件
15 if (!list1) {
16 return list2;
17 }
18 if (!list2) {
19 return list1;
20 }
21
22 // 此时l1 list2 都不为空
23 let dummyHead = new ListNode(-1);
24 let last = dummyHead;
25
26 while (list1 && list2) {
27 if (list1.val < list2.val) {
28 last.next = list1;
29 last = list1;
30 list1 = list1.next;
31 } else {
32 last.next = list2;
33 last = list2;
34 list2 = list2.next;
35 }
36 }
37
38 // 此时说明l1或者l2为空
39 if (!list1) {
40 last.next = list2;
41 }
42 if (!list2) {
43 last.next = list1;
44 }
45
46 return dummyHead.next;
47 };