题解 | #合并k个已排序的链表#

合并k个已排序的链表

https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6

使用优先队列:
class Solution {
public:
    ListNode *mergeKLists(vector<ListNode *> &lists) {
        if(lists.empty()) return nullptr;
        struct cmp_custom {//比较器
            bool operator()(ListNode* &x, ListNode* &y) {
                return (x->val) > (y->val);//递减
            }
        };
        priority_queue<ListNode*,vector<ListNode*>,cmp_custom> p;
        for(int i=0;i<lists.size();++i){
            if(lists[i])
                p.push(lists[i]);
        }
        ListNode* head=p.top();
        ListNode* res=head;
        p.pop();
        while(!p.empty()){
            if(head->next)
                p.push(head->next);
            head->next=p.top();
            p.pop();
            head=head->next;
        }
        return res;
    }
};


全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 18:19
个个985的硕士闭着眼睛都有15k以上的月薪,天天嚷嚷着研究生白度读了,天天嚷嚷着反向读研了........
MMMJC:不读研22本科出去的基本都拿28k呢,你不能用25的研究生和25的本科生比然后说没反向读研,而是25研和22本比呀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务