当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。

合并 K 个升序链表

困难mergeKLists()
时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(N log k),空间 O(1)

合并 K 个升序链表

给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。

> 与力扣原题语义一致。本平台中链表数组以「数组的数组」形式给出,例如 [[1,4,5],[1,3,4],[2,6]];参考解需要在内部把每个子数组构建为链表后再合并。

约定

  • 每个子数组代表一条升序链表,空数组 [] 表示空链表。
  • 空链表数组 [] 也是合法输入,返回空链表。

输入

  • lists:链表数组(数组的数组),总节点数 0 ~ 8000,节点值范围 -10^4 ~ 10^4

输出

合并后的升序链表(值数组形式)。

示例一

输入:

lists = [[1,4,5],[1,3,4],[2,6]]

输出:

[1,1,2,3,4,4,5,6]

示例二

输入:

lists = []

输出:

[]

示例三

输入:

lists = [[]]

输出:

[]

复杂度要求

  • 时间复杂度:O(N log k),N 为总节点数,k 为链表条数
  • 空间复杂度:O(1)(不计输入输出)
Loading...

输入

[[[1,4,5],[1,3,4],[2,6]]]

预期输出

[1,1,2,3,4,4,5,6]
自定义用例