将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
var mergeTwoLists = function(l1, l2) {
if (l1 === null) return l2
if (l2 === null) return l1
let result = new ListNode()
let fakeL1 = l1
let fakeL2 = l2
let fakeResult = result
while (fakeL1 || fakeL2) {
if (!fakeL2 || (fakeL1 && fakeL2 && fakeL1.val < fakeL2.val)) {
fakeResult.val = fakeL1.val
fakeL1 = fakeL1.next
} else {
fakeResult.val = fakeL2.val
fakeL2 = fakeL2.next
}
if (fakeL1 || fakeL2) {
fakeResult = (fakeResult.next = new ListNode())
}
}
return result
}
var mergeTwoLists = function(l1, l2) {
if (l1 === null) return l2
if (l2 === null) return l1
if (!l2 || (l1 && l2 && l1.val < l2.val)) {
l1.next = mergeTwoLists(l1.next, l2)
return l1
} else {
l2.next = mergeTwoLists(l1, l2.next)
return l2
}
}