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

合并k个已排序的链表

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

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
        if(pHead1==nullptr)
        return pHead2;
        if(pHead2==nullptr)
        return pHead1;
        ListNode* dummy=new ListNode(-1);
        ListNode* cur=dummy;
        ListNode* cur1=pHead1;
        ListNode* cur2=pHead2;
        while(cur1!=nullptr&&cur2!=nullptr)
        {
            if(cur1->val>=cur2->val)
            {
                cur->next=cur2;
                cur2=cur2->next;
            }
            else
            {
                cur->next=cur1;
                cur1=cur1->next;
            }
            cur=cur->next;
        }
        if(cur1==nullptr)
        {
            cur->next=cur2;
        }
        if(cur2==nullptr)
        {
            cur->next=cur1;
        }
        return dummy->next;
    }
    ListNode* divideMerge(vector<ListNode*>& lists,int l,int r)
    {
        if(l>r)
        return nullptr;
        else if(l==r)
        return lists[l];
        int m=(l+r)/2;
        return Merge(divideMerge(lists,l,m),divideMerge(lists,m+1,r));
    }
    ListNode* mergeKLists(vector<ListNode*>& lists) {
        return divideMerge(lists,0,lists.size()-1);
    }
};

归并排序

全部评论

相关推荐

头像
02-15 16:23
中南大学 Java
野猪不是猪🐗:签了美团真是不一样! 亲戚们都知道我签了美团,过年都围着我问送一单多少钱,还让弟弟妹妹们引以为戒,笑我爸我妈养了个🐢孩子,说从小就知道我这个人以后肯定没出息,我被骂的都快上天了
点赞 评论 收藏
分享
明天不下雨了:我靠2022了都去字节了还什么读研我教你****:你好,本人985电子科大在读研一,本科西南大学(211)我在字节跳动实习过。对您的岗位很感兴趣,希望获得一次投递机会。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务