当前位置:网站首页>LeetCode_21(合并两个有序链表)

LeetCode_21(合并两个有序链表)

2022-06-10 14:16:00 ***

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

示例 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 均按 非递减顺序 排列

//递归
/**
 * 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) {
    
        if(list1==null)return list2;
        if(list2==null)return list1;
        //将两个中小的那一个放入新链表,另外那一个称为大的那一个
        ListNode list3=list1.val<list2.val?list1:list2;
        //将小的后面的那一个与刚刚大的那一个相比较
        list3.next=mergeTwoLists(list3.next,list1.val>=list2.val?list1:list2);
        return list3;
    }
}
原网站

版权声明
本文为[***]所创,转载请带上原文链接,感谢
https://blog.csdn.net/someday_OK/article/details/125148201