合并K个已排序的链表

合并k个已排序的链表

http://www.nowcoder.com/questionTerminal/65cfde9e5b9b4cf2b6bafa5f3ef33fa6

//递归方法:
//分治思想,逐一攻破

class Solution {

public:
    ListNode *mergeKLists(vector<ListNode *> &lists) {
        if(lists.size() == 0)
            return nullptr;
        ListNode* head = nullptr;
        for(int i = 0; i < lists.size(); ++i){
            head = connectList(head, lists[i]);
        }
        return head;
    }

    ListNode* connectList(ListNode* p1, ListNode* p2){ //两两比较
        if(p1 == nullptr || p2 == nullptr)
            return p1 == nullptr ? p2 : p1;
        if(p1->val < p2->val){
            p1->next = connectList(p1->next, p2);
            return p1;
        }
        else{
            p2->next = connectList(p1, p2->next);
            return p2;
        }
    }
};
全部评论
这个for()循环一个个合并应该不能叫分治吧
4 回复 分享
发布于 2021-02-06 21:57
你这只能算暴力,并不是分治
1 回复 分享
发布于 2021-04-19 18:56
精简、干练,受教了
点赞 回复 分享
发布于 2020-09-06 16:02

相关推荐

03-27 01:58
已编辑
西北工业大学 Java
在平静中度过当下:如果这个bg也简历挂的话可能他们现在不缺人了吧,我也是这两天投的,阿里和快手投的岗都是简历秒挂
点赞 评论 收藏
分享
评论
17
1
分享

创作者周榜

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