leetCode---Merge k Sorted Lists
来源:互联网 发布:sql server 2008r2下载 编辑:程序博客网 时间:2024/06/06 07:54
一. 题目:Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
二. 思路分析
借鉴归并排序的方法,自顶向下,先递归的对链表的前半部分和后半部分进行归并排序,最后再merge。
以下代码顺利AC了,时间复杂度为:O(NlogK),因为递归深度是logK,并且在每个级别中,每个元素将被比较。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* mergeKLists(vector<ListNode*>& lists) { return partion(lists,0,lists.size()-1); }public: ListNode* partion(vector<ListNode*>&lists,int start,int end){ if(start == end) return lists[start]; if(start > end) return NULL; int mid = (start+end)/2; ListNode* l1 = partion(lists,start,mid); ListNode* l2 = partion(lists,mid+1,end); ListNode* head = new ListNode(0); ListNode* cur = head; while(l1 !=NULL && l2 != NULL){ if(l1->val < l2->val){ cur->next = l1; l1 = l1->next; }else{ cur->next = l2; l2 = l2->next; } cur = cur->next; } cur->next = (l1 != NULL)?l1:l2; return head->next; }};
0 0
- LeetCode: Merge k Sorted Lists
- LeetCode Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge K sorted lists
- [LeetCode]Merge k Sorted Lists
- [LeetCode] Merge k Sorted Lists
- LeetCode-Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- LeetCode - Merge k Sorted Lists
- LeetCode | Merge k Sorted Lists
- 【leetcode】Merge k Sorted Lists
- Leetcode: Merge k Sorted Lists
- <Leetcode>Merge k Sorted Lists
- [LeetCode] Merge K sorted lists
- [LeetCode] Merge k Sorted Lists
- 【Leetcode】Merge k Sorted Lists
- C#预处理指令
- lasso算法学习
- Keepalived + Nginx实现高可用 Web负载均衡
- 蓝桥杯2014年第五届决赛C_C++程序设计本科B组
- 画PCB技巧及快捷键不定期整理
- leetCode---Merge k Sorted Lists
- Error:(17, 0) Could not find method android() for arguments [build_1cwiaafm5
- SharePoint online Multilingual support
- Spring MVC初体验
- 蓝桥杯:Huffuman树
- SIP 重定向
- 计算机编码
- Ubuntu16.04虚拟机调整窗口大小自适应VMware10窗口
- HIVE动态分区和动态导入