Merge k Sorted Lists LeetCode solution in C++

1
class Solution {
2
public:
3
struct compare {
4
bool operator()(ListNode *&a, ListNode *&b) {
5
return a->val > b->val;
6
}
7
};
8
ListNode *mergeKLists(vector<ListNode *> &lists) {
9
priority_queue<ListNode *, vector<ListNode *>, compare> minh;
10
for (int i = 0; i < lists.size(); i++) {
11
if (lists[i] != NULL) minh.push(lists[i]);
12
}
13
ListNode *head = new ListNode(0);
14
ListNode *temp = head;
15
while (minh.size() > 0) {
16
ListNode *p = minh.top();
17
minh.pop();
18
temp->next = new ListNode(p->val);
19
temp = temp->next;
20
if (p->next != NULL) minh.push(p->next);
21
}
22
return head->next;
23
}
24
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0