欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

合并K个升序链表

时间:2023-06-04

给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。

输入:
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

方法一:暴力解法
之前做过两个链表的升序排列,这次是n个,所以可以利用之前写的那个函数,然后遍历一遍一个一个合起来就行,如果数据太多,运行时间一定会超,一看200ms。

class Solution { public ListNode mergeKLists(ListNode[] lists) { ListNode listsum = null; int len = lists.length; for(int i=0;i 方法二:
分治:

图片来自力扣

class Solution { public ListNode mergeKLists(ListNode[] lists) { if(lists.length==0) return null; if(lists.length==1) return lists[0]; int len = lists.length; int mid = len/2; ListNode []list1 = new ListNode[mid]; for(int i=0;i

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。