力扣热题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;
    }
}
相关推荐
闻缺陷则喜何志丹1 小时前
【逆序对 博弈】P10737 [SEERC 2020] Reverse Game|普及+
c++·算法·洛谷·博弈·逆序堆
love you joyfully1 小时前
图论简介与图神经网络(Dijkstra算法,图卷积网络GCN实战)
人工智能·深度学习·神经网络·算法·贪心算法·图论
NAGNIP1 小时前
从原理到实战:RLHF(人类反馈强化学习)完整流程
算法
大锦终1 小时前
【算法】哈希表专题
c++·算法·leetcode·哈希算法·散列表
乐迪信息1 小时前
乐迪信息:智慧煤矿视觉检测平台:从皮带、人员到矿车
大数据·人工智能·算法·安全·视觉检测·推荐算法
睡不醒的kun2 小时前
leetcode算法刷题的第二十三天
数据结构·c++·算法·leetcode·职场和发展·贪心算法
初级炼丹师(爱说实话版)2 小时前
8.30美团技术岗算法第二题
python·算法
CoovallyAIHub2 小时前
突破闭集限制:3D-MOOD 实现开集单目 3D 检测新 SOTA
深度学习·算法·计算机视觉
阿维的博客日记3 小时前
LeetCode 31. 下一个排列
java·算法·leetcode
1白天的黑夜13 小时前
哈希表-面试题01.02.判定是否互为字符重排-力扣(LeetCode)
c++·leetcode·哈希表