leetcode Merge k Sorted Lists
题目连接
https://leetcode.com/problems/merge-k-sorted-lists/
Merge k Sorted Lists
Description
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) {} * }; */ class Solution { public: struct cmp { inline bool operator()(ListNode *&x, ListNode *&y) { return x->val > y->val; } }; ListNode* mergeKLists(vector<ListNode*>& lists) { priority_queue<ListNode*, vector<ListNode*>, cmp> q; for (auto r : lists) { while (r) { q.push(r); r = r->next; } } ListNode root(0), *p = &root; while (!q.empty()) { p->next = q.top(); q.pop(); p = p->next; } p->next = NULL; return root.next; } };
By: GadyPu 博客地址:http://www.cnblogs.com/GadyPu/ 转载请说明