首页 > 代码库 > [leetcode]Merge k Sorted Lists
[leetcode]Merge k Sorted Lists
use smaller heap
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *mergeKLists(vector<ListNode *> &lists) { priority_queue<ListNode*, vector<ListNode*>, function<bool(ListNode*, ListNode*)> > que([&](ListNode* a, ListNode* b) {return a->val > b->val;}); for (int i = 0; i < lists.size(); i++) { if (lists[i]) que.push(lists[i]); } ListNode* dummy = new ListNode(-1); ListNode* curr = dummy; while(!que.empty()) { curr->next = que.top(); curr = curr->next; que.pop(); if (curr->next) { que.push(curr->next); } curr->next = nullptr; } return dummy->next; }};
[leetcode]Merge k Sorted Lists
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。