解题思路
首先创建一个dummy节点,这个节点用于返回目标链表。
创建一个while循环。循环的终止体条件为 l1
、l2
两个链表其中一个为null
。
循环内部逻辑:如果l1
的值小于l2
的值,就将current.next
节点的值指向l1
,且更新l1
为l1.next
,反之current.next
取l2
的值,且更新l2
为l2.next
function ListNode(val, next) {
this.val = val === undefined ? 0 : val;
this.next = next === undefined ? null : next;
}
var mergeTwoLists = function (list1, list2) {
//创建一个dummy
const dummy = new ListNode(0);
let current = dummy;
//开始循环
while (l1 != null && l2 != null) {
if (l1.val < l2.val) {
current.next = l1;
l1 = l1.next;
} else {
current.next = l2;
l2 = l2.next;
}
}
//如果连个链表的长度不一样,最后肯定会有未合并的数据
if (l1 !== null) {
current.next = l1;
} else {
current.next = l2;
}
return dummy.next;
};