LeetCode刷题笔记:合并两个有序链表(0021)

题目链接

https://leetcode.cn/problems/merge-two-sorted-lists/

题目描述

给定两个按非递减顺序排列的单链表 list1 和 list2,将它们合并为一个新的有序链表并返回。

解题思路

  • 迭代合并:
    • 使用哑节点 dummy 和指针 cur。
    • 每次从 list1、list2 取较小节点接到 cur 后面并前进对应链表。
    • 一方耗尽后,直接把另一方剩余部分接到末尾。
  • 边界情况:若某一链表为空,答案即为另一链表。

题解代码

java 复制代码
class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        ListNode dummy = new ListNode();
        ListNode cur = dummy;
        while (list1 != null && list2 != null) {
            if (list1.val < list2.val) {
                cur.next = list1;
                list1 = list1.next;
            } else {
                cur.next = list2;
                list2 = list2.next;
            }
            cur = cur.next;
        }
        cur.next = (list1 != null) ? list1 : list2;
        return dummy.next;
    }
}

复杂度分析

  • 时间复杂度:O(n + m),n、m 分别为两链表长度。
  • 空间复杂度:O(1),除若干指针外不使用额外空间。
相关推荐
sbjdhjd7 小时前
网工进阶笔记:H3CSE 园区网全栈技术与协议汇总
网络·笔记·云计算·ssh·网络工程·vlan·aaa
海绵宝宝的月光宝盒11 小时前
14-AutoCAD-阵列命令应用与案例实战(AR)
经验分享·笔记·自动化·课程设计·制造·学习方法·cad
白山编程大哥12 小时前
接口幂等性是什么?如何设计?
笔记
ACP广源盛1392462567312 小时前
6 盘位存储扩展方案选型笔记:YLB3116 @ACP评估记录
笔记·硬件架构·硬件工程·国产芯片
小李不想当小白12 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
j7~14 小时前
【穷举、深搜与回溯算法】一棵决策树讲透全排列与子集
数据结构·c++·算法·leetcode·回溯·递归
weixin_4481199414 小时前
Datawhale Jev Cookbook 202610 笔记3
笔记
姚瑞南14 小时前
【PRD】招投标商机雷达爬虫系统
人工智能·经验分享·笔记·爬虫·产品运营·产品经理
Gnevergiveup15 小时前
ATT&CK红蓝对抗实战指南-Windows安全基础
笔记·网络安全
Shaoshing16 小时前
LeetCode100 42.接雨水
java·算法·leetcode