(leetcode学习)21. 合并两个有序链表

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

示例 1:

复制代码
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

示例 2:

复制代码
输入:l1 = [], l2 = []
输出:[]

示例 3:

复制代码
输入:l1 = [], l2 = [0]
输出:[0]

提示:

  • 两个链表的节点数目范围是 [0, 50]
  • -100 <= Node.val <= 100
  • l1l2 均按 非递减顺序 排列
cpp 复制代码
    ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
        if(list1 == NULL) return list2;
        if(list2 == NULL) return list1;
        ListNode* res = new ListNode();
        ListNode* cur = res;
        while(list1 != NULL && list2 != NULL){
            if(list1->val < list2->val){
                cur->next = list1;
                cur = cur->next;
                list1 = list1->next;
            }
            else{
                cur->next = list2;
                cur = cur->next;
                list2 = list2->next;
            }
        }
        if(list1 == NULL) cur->next = list2;
        if(list2 == NULL) cur->next = list1;
        return res->next;
    }
相关推荐
样例过了就是过了5 分钟前
LeetCode热题100 最大子数组和
数据结构·算法·leetcode
wangluoqi8 分钟前
c++ 逆元 小总结
开发语言·c++
BackCatK Chen10 分钟前
第十五章 吃透C语言结构与数据形式:struct/union/typedef全解析
c语言·开发语言·数据结构·typedef·结构体·函数指针·联合体
瓦特what?14 分钟前
插 入 排 序
开发语言·c++
铸人14 分钟前
再论自然数全加和 - 欧拉伽马常数
数学·算法·数论·复数
『往事』&白驹过隙;24 分钟前
C/C++中的格式化输出与输入snprintf&sscanf
linux·c语言·c++·笔记·学习·iot·系统调用
Je1lyfish27 分钟前
CMU15-445 (2026 Spring) Project#1 - Buffer Pool Manager
linux·数据库·c++·后端·链表·课程设计·数据库架构
踩坑记录27 分钟前
leetcode hot100 200. 岛屿数量 medium dfs
leetcode·深度优先
好好学习天天向上~~34 分钟前
12_Linux学习总结_进程地址空间(虚拟地址)
linux·学习
m0_5312371737 分钟前
C语言-变量,枚举常量,字符串,打印类型,转义字符
c语言·数据结构·算法