leetcode-23. 合并K个升序链表
本文最后更新于:2022年7月30日 晚上
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| class Solution { public: struct Cmp { bool operator() (ListNode* a, ListNode* b) { return a->val > b->val; } };
ListNode* mergeKLists(vector<ListNode*>& lists) { priority_queue<ListNode*, vector<ListNode*>, Cmp> heap;
auto dummy = new ListNode(0); auto tail = dummy;
for (auto l : lists) if (l) heap.push(l); while (heap.size()) { auto t = heap.top(); heap.pop(); tail->next = t; tail = t;
if (t->next) heap.push(t->next); }
return dummy->next; } };
|