【链表】Leetcode 21. 合并两个有序链表【简单】

合并两个有序链表

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

示例1:
在这里插入图片描述
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

解题思路

  • 1、比较两个链表的头结点,选择其中头节点值较小的一个作为合并后的链表的头结点
    2、然后递归地继续合并剩余的部分

java实现

public class MergeTwoSortedLists {
   
    public 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;
        }
    }

    public static void main(String[] args) {
        // 创建两个有序链表 l1: 1 -> 2 -> 4,l2: 1 -> 3 -> 4
        ListNode l1 = new ListNode(1);
        l1.next = new ListNode(2);
        l1.next.next = new ListNode(4);

        ListNode l2 = new ListNode(1);
        l2.next = new ListNode(3);
        l2.next.next = new ListNode(4);
        l2.next.next.next = new ListNode(5);
        l2.next.next.next.next = new ListNode(6);

        MergeTwoSortedLists solution = new MergeTwoSortedLists();
        ListNode mergedList = solution.mergeTwoLists(l1, l2);

        // 输出合并后的链表
        while (mergedList != null) {
            System.out.print(mergedList.val + " -> ");
            mergedList = mergedList.next;
        }
        System.out.println("null");
    }
}

时间空间复杂度

  • 时间复杂度:O(m + n),其中 m 和 n 分别是两个链表的长度。
  • 空间复杂度:O(1),只需要使用常数级别的额外空间

相关推荐

  1. Leetcode21 合并有序

    2024-03-20 08:32:02       66 阅读
  2. Leetcode 21合并有序

    2024-03-20 08:32:02       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 08:32:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 08:32:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 08:32:02       87 阅读
  4. Python语言-面向对象

    2024-03-20 08:32:02       96 阅读

热门阅读

  1. 北斗校时服务器(GPS授时服务器,NTP同步时钟)

    2024-03-20 08:32:02       43 阅读
  2. uniapp小程序接入trtc-wx

    2024-03-20 08:32:02       37 阅读
  3. 2024-03-19 事业-代号s-商城系统-记录

    2024-03-20 08:32:02       39 阅读
  4. (css)element-ui表单整体居中

    2024-03-20 08:32:02       40 阅读
  5. ARM-GPIO电点灯实验

    2024-03-20 08:32:02       49 阅读
  6. 创建一个针对单个问题的GPT风格语言模型

    2024-03-20 08:32:02       41 阅读
  7. 【vivado】ILA使用

    2024-03-20 08:32:02       40 阅读
  8. 在CentOS 7上使用Ansible安装Nginx

    2024-03-20 08:32:02       45 阅读