博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
23. Merge k Sorted Lists
阅读量:4650 次
发布时间:2019-06-09

本文共 1612 字,大约阅读时间需要 5 分钟。

Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.

Example:Input:[  1->4->5,  1->3->4,  2->6]Output: 1->1->2->3->4->4->5->6

合并k个有序链表。

用归并排序就好了。

1 class Solution { 2 public: 3     ListNode* merge(vector
& lists, int low, int high) { 4 ListNode* left = nullptr; 5 ListNode* right = nullptr; 6 if (low < high - 1) { 7 int mid = low + (high - low) / 2; 8 left = merge(lists, low, mid); 9 right = merge(lists, mid+1, high);10 }11 else {12 left = lists[low];13 right = low == high? nullptr: lists[high];14 }15 int a, b; 16 ListNode *res = new ListNode(0);17 ListNode *curr = res;18 while (left || right) {19 a = left? left->val: INT_MAX;20 b = right? right->val: INT_MAX;21 if (a < b) {22 curr->next = left;23 left = left->next;24 curr = curr->next;25 }26 else {27 curr->next = right;28 right = right->next;29 curr = curr->next;30 }31 }32 curr = res->next;33 delete res;34 return curr;35 }36 ListNode* mergeKLists(vector
& lists) {37 ListNode *head = nullptr;38 int low = 0;39 int high = lists.size() - 1;40 if (low <= high)41 head = merge(lists, low, high);42 return head;43 }44 };

 

转载于:https://www.cnblogs.com/Zzz-y/p/9063585.html

你可能感兴趣的文章
Hibernate二级缓存配置
查看>>
LoadRunner常用术语
查看>>
关于jedis2.4以上版本的连接池配置,及工具类
查看>>
记忆讲师石伟华微信公众号2017所有文章汇总(待更新)
查看>>
mechanize (1)
查看>>
FactoryBean
查看>>
Coolite动态加载CheckboxGroup,无法在后台中获取
查看>>
如何在我们项目中利用开源的图表(js chart)
查看>>
nfs服务器工作原理
查看>>
C3P0连接池工具类使用
查看>>
SVN常用命令备注
查看>>
孩子教育
查看>>
解决Cacti监控图像断断续续问题
查看>>
结构体的传参理解成员的存储方式
查看>>
python 进程与线程(理论部分)
查看>>
什么是API
查看>>
Java反射中method.isBridge() 桥接方法
查看>>
[shiro学习笔记]第二节 shiro与web融合实现一个简单的授权认证
查看>>
强名称程序集(strong name assembly)——为程序集赋予强名称
查看>>
1028. List Sorting (25)
查看>>