每天一道LeetCode-合并两个有序链表

112 阅读1分钟

第6道算法题

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

我的思路:将两头作比较,小的next对象应该指向自身的next还是上一次比较中较小的呢,则继续进行比较,更小的就是next,抽象成递归

/**
 * @param {ListNode} list1
 * @param {ListNode} list2
 * @return {ListNode}
 */

var mergeTwoLists = function(list1, list2) {
    if(list1===null){
        return list2
    }
        if(list2===null){
        return list1
    }

    if(list1.val<list2.val){
        list1.next = mergeTwoLists(list1.next,list2)
        return list1
    }else{
        list2.next = mergeTwoLists(list2.next,list1)
        return list2
    }
};