leetcode第21题

简介: 总递归看起来,两个字,优雅!但是关于递归的时间复杂度,空间复杂度的求法,先留个坑吧。

image.png

合并两个有序链表。

解法一 迭代

遍历两个链表。

publicListNodemergeTwoLists(ListNodel1, ListNodel2) {
ListNodeh=newListNode(0);
ListNodeans=h;
while (l1!=null&&l2!=null) {
if (l1.val<l2.val) {
h.next=l1;
h=h.next;
l1=l1.next;
        } else {
h.next=l2;
h=h.next;
l2=l2.next;
        }
    }
if(l1==null){
h.next=l2;
    }
if(l2==null){
h.next=l1;
    } 
returnans.next;
}

时间复杂度:O(m + n)。

空间复杂度:O(1)。

解法二 递归

参考这里

ListNodemergeTwoLists(ListNodel1, ListNodel2) {
if(l1==null) returnl2;
if(l2==null) returnl1;
if(l1.val<l2.val) {
l1.next=mergeTwoLists(l1.next, l2);
returnl1;
    } else {
l2.next=mergeTwoLists(l2.next, l1);
returnl2;
    }
}

时间复杂度:

空间复杂度:

递归看起来,两个字,优雅!但是关于递归的时间复杂度,空间复杂度的求法,先留个坑吧。



相关文章
|
8月前
leetcode541刷题打卡
leetcode541刷题打卡
34 0
|
8月前
刷题之Leetcode206题(超级详细)
刷题之Leetcode206题(超级详细)
56 0
刷题之Leetcode206题(超级详细)
|
8月前
刷题之Leetcode283题(超级详细)
刷题之Leetcode283题(超级详细)
34 0
|
8月前
|
算法
刷题之Leetcode59题(超级详细)
刷题之Leetcode59题(超级详细)
38 0
|
8月前
|
算法
leetcode:389. 找不同
leetcode:389. 找不同
32 0
|
8月前
|
测试技术 索引
leetcode707刷题打卡
leetcode707刷题打卡
34 0
|
8月前
leetcode19刷题打卡
leetcode19刷题打卡
42 0
|
8月前
leetcode225刷题打卡
leetcode225刷题打卡
43 0
单链表反转 LeetCode 206
单链表反转 LeetCode 206
82 0