力扣热题100------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

l1 和 l2 均按 非递减顺序 排列

思路:我们先创建一个新结点 创建一个指针 使它指向新结点 使用一个while循环 来判断两个链表是否为空 如果两个链表都为空的话 我们来计算两个链表的结点谁比较大 我们让新结点指向较小的数 如果有一个链表为空的话 那我们就让新结点直接指向另一个链表的结点

java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        ListNode dummy = new ListNode(-1);
        ListNode current = dummy;
        while (list1!=null && list2!=null){
            if (list1.val>=list2.val){
                current.next=list2;
                list2=list2.next;
            }else {
                current.next=list1;
                list1=list1.next;
            }
            current=current.next;
        }
        if (list1!=null){
            current.next=list1;
        }else{
            current.next=list2;
        }
        return dummy.next;
    }
}
相关推荐
乐迪信息5 小时前
港口船舶逆行怎么管?AI防爆摄像机搭载智能检测算法
大数据·人工智能·深度学习·算法·计算机视觉
Sirens.6 小时前
Java并发锁详解:六类锁策略与 synchronized 底层原理
java·前端·算法
和裕6 小时前
全纸结构重型纸箱能否满足 1 吨以上设备出口熏蒸豁免要求?通关合规性全解析
大数据·运维·网络·人工智能·算法
tangguofeng7 小时前
不带头结点的链队操作集(不含InitFlag)(C语言版)
算法
苏打豆8 小时前
CRISP源码阅读——基于ROS2力矩反馈控制器与速度加速度零空间
c++·线性代数·算法·矩阵·机器人
蛋蛋的就会顺顺的9 小时前
hot100——矩阵
java·数据结构·算法·leetcode·力扣
老歌老听老掉牙9 小时前
麻花钻切屑形态演变的力学机制与临界条件分析
python·算法·钻头
zhangfeng113310 小时前
国产GPU/AI算力芯片现状(修订完整版 · 截至2026年9月
人工智能·算法·ai编程·npu
学代码的CJY10 小时前
从代码出发理解时间复杂度与空间复杂度
数据结构·算法
白帽攻防录10 小时前
SRC 挖洞:WSO2 JWT 算法混淆绕过深度复盘,CVE-2026-5430 不支持的算法怎么变成管理员
网络·算法·安全·网络安全·jwt