LeetCode 21Merge Two Sorted Lists 合并两个排序链表 Java

**题目:**将两个已排序的链表合并在一起。

举例1:

输入:list1 = 1,2,4, list2 = 1,3,4;

输出:1,1,2,3,4,4;

举例2:

输入:list1 = \[\] , list2 = \[\];

输出:\[\]

举例3:

输入: list1 = \[\] , list2 = 0;

输出: 0

**解题思路:**遍历两个链表,比较节点值来合并链表,当其中一个链表遍历完成时,将另一个链表剩余部分拼入新链表。

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 head = new ListNode(0);
        ListNode currect = head;

        //比较节点,获取较小节点拼入
        while (list1 != null && list2 != null) {
            if (list1.val <= list2.val) {
                currect.next = list1;
                list1 = list1.next;
            } else {
                currect.next = list2;
                list2 = list2.next;
            }
            currect = currect.next;
        }

        //若其中一个链表已遍历完成,拼入另一个链表到新链表中
        if (list1 == null) {
            currect.next = list2;
        } else {
            currect.next = list1;
        }

        return head.next;
    }

}
相关推荐
SXJR8 分钟前
langchain4j是如何保证tools或者funcation call不出错的
java·网络·数据库·ai·语言模型
子一!!16 分钟前
spring基础学习
java·学习·spring
拽着尾巴的鱼儿21 分钟前
Java 对象的深拷贝和浅拷贝
java·开发语言
我不是懒洋洋1 小时前
手写一个异步日志库:从printf到高性能无锁日志
java·c语言·开发语言·c++·visual studio
李少兄1 小时前
Java 工程化基石:标准目录结构与 META-INF 元信息机制
java·开发语言
就叫_这个吧1 小时前
理解Java反射机制和内省机制应用与实践
java·开发语言·反射
未若君雅裁1 小时前
synchronized 底层原理:Monitor、对象头、Mark Word 与锁升级
java
m0_752035632 小时前
markdown语言格式
java
布朗克1682 小时前
12 封装与构造方法
java·开发语言·封装·构造方法
z落落2 小时前
C# 抽象类(abstract)
java·开发语言·c#