# 合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

image-20210830093723526

# 思路

递归的空间复杂度O(T) = 递归调用的次数(R) * 计算时间复杂度的乘积O(s) O(T) = R * O(s)

在两个链表中找最小值,找到直接返回,最终返回为一个链表!

var mergeTwoLists = function(l1, l2) {
    // 如果当前链表为null 返回对方链表
    if(l1 == null) return l2;
    if(l2 == null) return l1;
    // 开始递归,如果当前链表的值 小于 对方链表的值
    if(l1.val < l2.val){
        // 重新递归该函数,并返回这个最小值
        l1.next = mergeTwoLists(l1.next, l2);
        return l1;
    }else{
        l2.next = mergeTwoLists(l1, l2.next);
        return l2;
    }
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
最后更新时间: 6/20/2022, 10:48:50 PM