23. 合并K个排序链表
生活随笔
收集整理的這篇文章主要介紹了
23. 合并K个排序链表
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
合并?k?個排序鏈表,返回合并后的排序鏈表。請分析和描述算法的復(fù)雜度。
示例:
輸入:
[
??1->4->5,
??1->3->4,
??2->6
]
輸出: 1->1->2->3->4->4->5->6
解法:
class Solution { public:ListNode* mergeKLists(vector<ListNode*>& lists) {auto cmp = [](ListNode*& a, ListNode*& b) {return a->val > b->val;};priority_queue<ListNode*, vector<ListNode*>, decltype(cmp) > q(cmp);for (auto node : lists) {if (node) q.push(node);}ListNode *dummy = new ListNode(-1), *cur = dummy;while (!q.empty()) {auto t = q.top(); q.pop();cur->next = t;cur = cur->next;if (cur->next) q.push(cur->next);}return dummy->next;} };總結(jié)
以上是生活随笔為你收集整理的23. 合并K个排序链表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使命召唤手游CBR4配件怎么搭配
- 下一篇: 默写代码