合并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

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
17
1
分享

创作者周榜

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