/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
思路:借鉴归并排序的思想,针对这个lists进行排序
假设总共有k个list,每个list的最大长度是n,那么运行时间满足递推式T(k) = 2T(k/2)+O(n*k)。根据主定理,算出总复杂度是O(nklogk)
class Solution {
public:ListNode* mergeKLists(vector<ListNode*>& lists) {if(lists.size()<=0) return NULL;return mergeKLists(lists, 0, lists.size()-1);}ListNode* mergeKLists(vector<ListNode*>& lists, int startIndex, int endIndex){if(startIndex<endIndex){int mid=(startIndex+endIndex)>>1;ListNode *l1=mergeKLists(lists, startIndex, mid);ListNode *l2=mergeKLists(lists, mid+1, endIndex);return mergeKLists(l1, l2);}else{return lists[startIndex];}}ListNode* mergeKLists(ListNode* l1, ListNode* l2){if(NULL==l1) return l2;if(NULL==l2) return l1;ListNode* dummy=new ListNode(-1), *cur=dummy;while(NULL!=l1&&NULL!=l2){if(l1->val<l2->val){cur->next=l1;l1=l1->next;cur=cur->next;}else{cur->next=l2;l2=l2->next;cur=cur->next;}}if(l1) cur->next=l1;if(l2) cur->next=l2;return dummy->next;}
};
详细解决方案
[LeetCode23]Merge k Sorted Lists(合并k个有序链表)
热度:47 发布时间:2023-12-06 19:19:32.0
相关解决方案
- svn merge tag归并到trunk的时候,找不到trunk的svn路径,看不到项目
- SVN版本归拢(merge)原理与操作指南
- PHP 的 array merge 与 + 号的差别
- Struts2课程 - 5.3.5-6 merge、sort标签使用介绍
- DataGrid表体归拢单元格 (Merge DataGrid Cells)
- hibernate的 merge()的用法,该如何解决
- eclipse git 出错:the current branch is not configured for pull No value for key branch.xxx.merge found
- 小鸟请问Oracle merge 的用法
- merge into 的事务处理有关问题
- MERGE INTO 在存储过程中报错,该如何处理
- merge into用法 针对同一张表
- oracle 中 merge into用法有关问题
- pro*c merge into如何实现
- oracle merge into解决办法
- merge into 越来越慢,求教大伙
- merge into 怎么应用多个update
- ,merge into可以并发吗
- MERGE INTO 在11g中的疑问。多谢
- merge 多条数据一起处理的有关问题,
- Merge 的小技艺
- sql 2008 R2 Merge into 说 'Merge' 附近有语法异常,但是小弟我看了老半天不知道哪里语法有有关问题了
- Android 抽象格局include merge Viewstub
- Using lists in Android [带通译]
- Creating Lists and Cards
- Android-Cannot merge new index 66195 into a non-jumbo instruction的解决方法
- Android抽象格局——include、merge 、ViewStub
- PHP 的 array merge 与 + 号的差别
- android <viewStub /> <requestFocus /> <merge /> and <include />用法
- Android <include /> <merge /> and <ViewStub />
- Sharepoint 怎么实现top-level site lists 与子网站之间的共享