题目描述
- 将两个有序链表合并为一个新的有序链表并返回
示例: 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4
思路分析
哨兵结点 来简化判断 做链表的题目 处理链表的本质 是处理链表结点之间的指针关系
function ListNode(val, next = null) {
this.val = val
this.next = next
}
/**
* @description 合并两个有序链表
* 时间复杂度 O(min(m,n))
* 空间复杂度 O(1)
* @param {ListNode} l1
* @param {ListNode} l2
* @returns {ListNode}
*/
function mergeTwoLists(l1, l2) {
let dummy = new ListNode(0)
let temp = head
while (l1 && l2) {
if (l1.val > l2.val) {
temp.next = l2
l2 = l2.next
} else {
temp.next = l1
l1 = l1.next
}
temp = temp.next
}
temp.next = l1 ? l1 : l2
return dummy.next
}
Baybay!!