Merge Two Sorted Lists 合并两个有序链表

Merge two sorted linked lists and return it as a sorted list. The list should be made by splicing together the nodes of the first two lists.

 合并两个有序链表并返回它合并后的有序列表,该列表应该通过拼接前两个列表的节点来生成。

Example 1:

Input: l1 = [1,2,4], l2 = [1,3,4]
Output: [1,1,2,3,4,4]

Example 2:

Input: l1 = [], l2 = []
Output: []

Example 3:

Input: l1 = [], l2 = [0]
Output: [0]

代码(java):
public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {
    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;
    }
}

时间复杂度O(n),空间复杂度O(1)。

posted @ 2021-01-20 15:34  鲤鱼程序员  阅读(96)  评论(0)    收藏  举报