合并两个有序链表LeetCode 21 |刷题打卡

99 阅读1分钟

题目

image.png

题解

每次递归进来比较l1和l2两个链表当前值的大小,下一个结点永远连接比较小的值,结束条件是l1和l2有一个为null,这题需要理解并能默写出来。

图解

说明:我画出来的和官方给的最后两个颜色不对,我没找到为啥,我姑且认为我是对的。

image.png

代码

public ListNode mergeTwoLists1List(ListNode l1, ListNode l2) {
    if(l1==null){
        return l2;

    }
    if(l2==null){
        return l1;
    }
    if(l1.val<l2.val){
        l1.next=mergeTwoLists1List(l1.next,l2);
        return l1;
    }else{
        l2.next=mergeTwoLists1List(l1,l2.next);
        return l2;
    }
}

备注

本文正在参与「掘金 2021 春招闯关活动」, 点击查看