leetcode[23]Merge k Sorted Lists
2015-02-10 13:32
274 查看
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ bool comp(ListNode *a, ListNode *b) { return a->val>b->val; } class Solution { public: ListNode *mergeKLists(vector<ListNode *> &lists) { int n=lists.size(); if(lists.empty())return NULL; vector<ListNode *> v; v.reserve(n); for (int i=0;i<n;i++) { if(lists[i]!=NULL) v.push_back(lists[i]); } if(v.size()==0)return NULL; make_heap(v.begin(),v.end(),comp); pop_heap(v.begin(),v.end(),comp); ListNode *small=v.back(); v.pop_back(); ListNode *head=new ListNode(-1); ListNode *pL=head; pL->next=small; pL=pL->next; while (!v.empty()) { if (small->next!=NULL) { v.push_back(small->next); push_heap(v.begin(),v.end(),comp); } pop_heap(v.begin(),v.end(),comp); small=v.back(); v.pop_back(); pL->next=small; pL=pL->next; } return head->next; } };
相关文章推荐
- Leetcode 23 Merge k Sorted Lists
- [Leetcode 50] 23 Merge K Sorted Lists
- LeetCode 23 Merge k Sorted Lists (C,C++,Java,Python)
- LeetCode-23. Merge k Sorted Lists
- leetcode 23:Merge k Sorted Lists(15-10-10)
- leetcode题解c++ | 23. Merge k Sorted Lists
- 【Leetcode】23. Merge k Sorted Lists
- LeetCode 23. Merge k Sorted Lists 【hard】
- Leetcode 23. Merge k Sorted Lists (Hard) (cpp)
- LeetCode 23. Merge k Sorted Lists
- [Leetcode 23, Hard] Merge k Sorted Lists
- ( Leetcode 23 ) Merge k Sorted Lists
- LeetCode-23.Merge k Sorted Lists
- Leetcode 23. Merge k Sorted Lists
- 【leetcode】23. Merge k Sorted Lists
- LeetCode(23)--Merge k Sorted Lists
- Leetcode 23. Merge k Sorted Lists
- Leetcode23-Merge k Sorted Lists
- [Leetcode]_23 Merge k Sorted Lists
- LeetCode 23 - Merge k Sorted Lists