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