[LeetCode 题解]: Merge k Sorted Lists
2014-07-28 20:44
381 查看
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
题意:对k个有序的链表进行归并排序。并分析其复杂度。
时间复杂度: O(n*logn)
空间复杂度: O(1)
至于具体的量化分析呢,呵呵。。。数学推导了
转载请注明出处: http://www.cnblogs.com/double-win/ 谢谢!
题意:对k个有序的链表进行归并排序。并分析其复杂度。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* merge(ListNode* left, ListNode* right){ //归并操作 if(left==NULL) return right; if(right==NULL) return left; ListNode *ans =new ListNode(0); if(left->val <= right->val){ ans=left; left = left->next; }else{ ans=right; right=right->next; } ans->next = merge(left,right); return ans; } ListNode* mergesort(vector<ListNode *> &lists,int left,int right){ //devide && conquer if(left>right){ return NULL; }if(left==right){ return lists[left]; }else{ int middle = (left+right)>>1; ListNode *lleft = mergesort(lists,left,middle); ListNode *lright = mergesort(lists,middle+1,right); return merge(lleft,lright); } } ListNode *mergeKLists(vector<ListNode *> &lists) { int left =0,right =lists.size()-1; int middle= (left+right)>>1; ListNode *lleft = mergesort(lists,left,middle); ListNode *lright = mergesort(lists,middle+1,right); return merge(lleft,lright); } };
时间复杂度: O(n*logn)
空间复杂度: O(1)
至于具体的量化分析呢,呵呵。。。数学推导了
转载请注明出处: http://www.cnblogs.com/double-win/ 谢谢!
相关文章推荐
- [LeetCode]题解(python):023-Merge k Sorted Lists
- Leetcode题解-23. Merge k Sorted Lists
- LeetCode题解:Merge Two Sorted Lists
- 【leetcode题解】【E】【97】Merge Two Sorted Lists
- LeetCodet题解--23. Merge k Sorted Lists(合并K个已排序的链表)
- LeetCode题解:Merge Two Sorted Lists
- leetcode_效率题解_23. Merge k Sorted Lists(合并k个有序链表)
- LeetCode题解:Merge Two Sorted Lists
- LeetCode题解:Merge k Sorted Lists
- LeetCode题解——Merge Two Sorted Lists
- LeetCodet题解--21. Merge Two Sorted Lists(合并两个排序好的链表)
- [LeetCode]题解(python):021-Merge Two Sorted Lists
- leetcode题解-23. Merge k Sorted Lists
- leetcode题解c++ | 23. Merge k Sorted Lists
- LeetCode题解——Merge k Sorted Lists
- LeetCode题解-21-Merge Two Sorted Lists
- [leetcode]Merge k Sorted Lists
- LeetCode21——Merge Two Sorted Lists
- [leetcode] 21.Merge Two Sorted Lists
- [leetcode 25] Merge k Sorted Lists