当前位置: 首页 > news >正文

【leetcode hot 100 23】合并K个有序链表

解法一:按顺序两两合并升序列表。先排序lists[0]lists[0]得到结果result,再将结果resultlist[3]排序,以此类推。

/**
 * 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 mergeKLists(ListNode[] lists) {
        if(lists.length==0){
            return null;
        }
        // 按顺序两两合并升序列表
        ListNode result = lists[0];
        for(int i=1;i<lists.length;i++){
            result = mergeTwoLists(result, lists[i]);
        }
        return result;
    }

    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        ListNode new_list=null;
        if(list1 != null && list2 != null){
            if(list1.val<=list2.val){
                new_list=list1;
                list1=list1.next;
                new_list.next=null;
            }
            else{
                new_list=list2;
                list2=list2.next;
                new_list.next=null;
            }
        }
        else{
            return list1!=null?list1:list2;
        }
        ListNode curr=new_list;
        while(list1 != null && list2 != null){
            if(list1.val<=list2.val){
                ListNode temp = list1.next;
                curr.next=list1;
                list1.next=null;
                list1=temp;
            }
            else{
                ListNode temp = list2.next;
                curr.next=list2;
                list2.next=null;
                list2=temp;
            }
            curr=curr.next;
        }
        if(list1!=null){
            curr.next=list1;
        }
        if(list2!=null){
            curr.next=list2;
        }
        return new_list;
    }
}

注意:

  • 要先判断lists.length==0

相关文章:

  • 图像识别技术与应用-YOLO
  • AI日报 - 2025年3月13日
  • Spring Boot 整合 Druid 并开启监控
  • 软件版本号设计
  • IEC61850标准下MMS 缓存报告控制块 ResvTms详细解析
  • 十种处理权重矩阵的方法及数学公式
  • python-leetcode 49.二叉树中的最大路径和
  • 【ES6】ES6中的类
  • 侯捷C++课程学习笔记:构造函数那些事儿(四)
  • 微信h5环境使用开放标签(wx-open-launch-weapp)打开三方小程序
  • 【商城实战(25)】解锁UniApp移动端适配秘籍,打造完美商城体验
  • 第一章:Tailwind CSS基础与项目设置 - 第一节:Tailwind CSS入门 - 核心理念与工作流
  • BGP 规划问题、路由黑洞与环路
  • 面试之《前端常见的设计模式》
  • Quantum Computing:量子计算如何改变世界
  • 行为模式---策略模式
  • C++多线程编程 3.互斥量、互斥锁
  • 百某田网任务脚本
  • c语言经典案例题
  • Insar结合ISCE2,某一个文件进行并行-stackSentinel.py
  • 中国驻美大使:远离故土的子弹库帛书正随民族复兴踏上归途
  • 广西:坚决拥护党中央对蓝天立进行审查调查的决定
  • 戛纳打破“疑罪从无”惯例,一法国男演员被拒之门外
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯今日执行死刑
  • 国税总局上海市税务局回应刘晓庆被举报涉嫌偷漏税:正依法依规办理
  • 中办、国办关于持续推进城市更新行动的意见