美文网首页
合并两个有序链表

合并两个有序链表

作者: A邱凌 | 来源:发表于2019-12-14 09:50 被阅读0次

    题目描述

    将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有
    节点组成的。 
     示例:
     输入:1->2->4, 1->3->4
     输出:1->1->2->3->4->4
    

    思路

     虽然这道题的困难度是简单,但是很有意思,看一下怎么解决.
     看到的第一眼就是两个指针滑动解决.后来发现这实在是暴力法,要记录很多变量,没意思.
     又想了一下正向流程,首先,要记住,这是一个链表.
     第一步合并得到 1->1->3->4  2->4
    然后将1->3->4  和 2->4 合并
    ?????
    递归的感觉出来没
    

    解决代码

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

    相关文章

      网友评论

          本文标题:合并两个有序链表

          本文链接:https://www.haomeiwen.com/subject/oflcnctx.html