首页/新闻资讯/正文详情

JAVA练习302- 合并K个排序链表

发布时间:2026/9/24 19:54:58 来源:云帆数科 栏目:资讯中心
JAVA练习302- 合并K个排序链表
题目概览给你一个链表数组每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中返回合并后的链表。示例 1输入lists [[1,4,5],[1,3,4],[2,6]]输出[1,1,2,3,4,4,5,6]解释链表数组如下 [ 1-4-5, 1-3-4, 2-6 ] 将它们合并到一个有序链表中得到。 1-1-2-3-4-4-5-6示例 2输入lists []输出[]示例 3输入lists [[]]输出[]提示k lists.length0 k 10^40 lists[i].length 500-10^4 lists[i][j] 10^4lists[i]按升序排列lists[i].length的总和不超过10^4来源23. 合并 K 个升序链表 - 力扣LeetCode解题分析方法二分 归并排序lists 里的链表都是排好序的这和归并排序类似只需要两两链表挨个元素进行比较不断连接小的节点即可。而两两比较可以用二分法将数组拆分成多个小数组然后从小的数组开始不断合并时间复杂度O(logk * nk)空间复杂度O(logk)/** * 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) { int n lists.length; if (n 0) { return null; } return mergeKLists(lists, 0, n - 1); } public ListNode mergeKLists(ListNode[] lists, int i, int j) { if (i j) { return lists[i]; } if (i 1 j) { return merge(lists[i], lists[j]); } int mid (i j) / 2; return merge(mergeKLists(lists, i, mid), mergeKLists(lists, mid 1, j)); } public ListNode merge(ListNode a, ListNode b) { ListNode res new ListNode(), pre res; while(a ! null b ! null) { if (a.val b.val) { pre.next a; a a.next; } else { pre.next b; b b.next; } pre pre.next; } if (a ! null) { pre.next a; } else if (b ! null) { pre.next b; } return res.next; } }

相关推荐

JAVA练习300- 随机链表的复制
JAVA练习300- 随机链表的复制

题目概览 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。… · 2026/9/24 19:54:38

Meta撤回Muse Image功能 隐私争议迫使AI工具下线
Meta撤回Muse Image功能 隐私争议迫使AI工具下线

Meta于2026年7月上旬推出Muse Image功能后,因允许用户引用公开Instagram账号内容生成图像,迅速遭遇大规模反对并在数日内撤回。该功能集成于Meta AI聊天机器人,由Meta Superintelligence Labs开发,是其首款图像生成模型。 事实还… · 2026/9/20 20:38:15

Cursor智能配置生成指南(VS Code用户紧急避坑版):已验证的7类YAML/JSON/TOML模板库首次公开
Cursor智能配置生成指南(VS Code用户紧急避坑版):已验证的7类YAML/JSON/TOML模板库首次公开

更多请点击: https://codechina.net 第一章:Cursor智能配置生成的核心原理与适用边界 Cursor 的智能配置生成并非基于通用大模型的泛化补全,而是依托于其深度集成的 IDE 语义感知引擎与本地化上下文建模能力。该机制在编辑器启动时自动构建项… · 2026/9/21 4:31:36

2026等保测评全攻略:新规动向、整改实操与策略选择
2026等保测评全攻略:新规动向、整改实操与策略选择

我第一次独自扛等保测评的时候,对着测评机构发来的资料清单犯了两天愁。那时候以为等保就是把防火墙、日志审计、堡垒机买齐再填一堆表格,结果真正开始整改才发现,最花时间的不是买设备,而是搞清楚每个检查项背后的意图。到2026年… · 2026/9/24 19:54:49

国产GitLab选型指南:Gitee、极狐GitLab与自建方案对比
国产GitLab选型指南:Gitee、极狐GitLab与自建方案对比

这些年问我“有没有国产 GitLab”的人越来越多了,而且问法五花八门:有人是被网络卡到崩溃,有人是被版本和合规逼的,还有人是纯粹想搞清楚 Gitee 和极狐 GitLab 这俩到底有什么区别。说实话,这个问题放在两年前还没有标… · 2026/9/24 19:54:49

前端开发者必补的后端与部署Skill:选型逻辑与实操避坑指南
前端开发者必补的后端与部署Skill:选型逻辑与实操避坑指南

前端开发者写页面写到一定阶段,几乎都会撞上同一堵墙:接口联调时后端说“字段没问题”,部署上线时运维说“环境不对”,本地跑得好好的项目一上服务器就白屏。这时候你会发现,光会写组件和调样式已经不够用了&#xff0… · 2026/9/24 19:54:49

Hadoop与PySpark对比实战:从架构原理到选型落地
Hadoop与PySpark对比实战:从架构原理到选型落地

做大数据这行,绕不开的坎就是选框架。我刚入行那会儿,被“Hadoop VS PySpark”这个问题纠结了很久,网上资料各说各话,看得人头晕。后来自己把两者都真正用了一遍,从课程设计到生产环境都踩过坑,才慢慢理清楚… · 2026/9/24 19:54:49

多数据库结构分析工具开发实战:解析MySQL、PostgreSQL与SQLite元数据
多数据库结构分析工具开发实战:解析MySQL、PostgreSQL与SQLite元数据

上个月帮朋友迁移一个老项目,需要同时核对MySQL和PostgreSQL两套库的表结构。那体验就像一个人同时用两套方言的字典查单词:MySQL里翻information_schema还算顺手,换到PostgreSQL就得去pg_catalog里对着pg_attribute、pg_class拼查询&#xf… · 2026/9/24 19:54:49

Windows HID设备枚举实战:从SetupAPI到HID Class API完整解析
Windows HID设备枚举实战:从SetupAPI到HID Class API完整解析

简介:本资源是一个基于Visual C开发的USB HID设备检测工具项目,面向Windows平台C开发者及嵌入式/驱动方向学习者,解决HID类外设(如键盘、鼠标、游戏手柄等)在PC端的自动识别与信息获取问题。项目完整封装了SetupAPI枚举… · 2026/9/24 19:54:41

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码