您的位置:首页 > 其它

leetcode Merge k Sorted Lists

2015-12-11 20:58 274 查看
原题链接:https://leetcode.com/problems/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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: