leetcode-21. 合并两个有序链表

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

示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

思路:

递归其实并不难理解,就是从宏观去看待它,思路就是建立一个新链表,然后对比l1与l2哪个比较合适,然后就把它赋值给新链表,后面要做的事情就是把剩余的部分递归合并,然后加载新链表的后面就行了,这个思路并不困难,简单易懂

//21. 合并两个有序链表
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if(l1 == null) {
            return l2;
        }if(l2 == null) {
            return l1;
        }

        ListNode res;
        if(l1.val < l2.val) {
            res = l1;
            res.next = mergeTwoLists(l1.next, l2);
        } else {
            res = l2;
            res.next = mergeTwoLists(l2.next, l1);
        }

        return res;
    }

 

全部评论

相关推荐

杨柳哥:这不是普通人,那这个钱的是天才
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务