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

合并k个已排序的链表

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

/**
 * 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) {
        if(!lists.size())return {};
        vector<ListNode *> vt;
        for(auto& l : lists){
            ListNode *p = l;
            while(p){
                vt.push_back(p);
                p = p->next;
            }           
        }
        auto cmp = [&](ListNode *vt1,ListNode *vt2){
            return vt1->val < vt2->val ;
        };
        sort(vt.begin(), vt.end(),cmp);
        for(int i = 0 ; i < vt.size()-1 ; ++i){
            vt[i]->next = vt[i+1];
        }
        vt[vt.size()-1]->next = nullptr;
        return vt[0];
    }
};

全部评论

相关推荐

求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务