题目


思路
依旧吃老本:【leetcode】21.合并两个有序链表
里面迭代和递归的思路都有讲的。
代码
这里贴的是迭代的。
javascript
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} list1
* @param {ListNode} list2
* @return {ListNode}
*/
var mergeTwoLists = function(list1, list2) {
if (!list1) return list2
if (!list2) return list1
const prehead = new ListNode(-1)
let prev = prehead
while (list1 !== null && list2 !== null) {
if (list1.val <= list2.val) {
prev.next = list1
list1 = list1.next
} else {
prev.next = list2
list2 = list2.next
}
prev = prev.next
}
// 指向未合并完的链表剩下部分
prev.next = list1 === null ? list2 : list1
return prehead.next
};