LCR 078. 合并 K 个升序链表

LCR 078. 合并 K 个升序链表


题目链接:LCR 078. 合并 K 个升序链表

代码如下:

cpp 复制代码
class Solution {
public:
    ListNode* mergeKLists(vector<ListNode*>& lists) {
        ListNode *ls=nullptr;
        for(int i=0;i<lists.size();i++)
        {
            ls=mergeList(ls,lists[i]);
        }

        return ls;
    }

    ListNode* mergeList(ListNode* a,ListNode* b)
    {
        if(a&&!b)
            return a;
            
        if(!a&&b)
            return b;

        ListNode* head=new ListNode;
        head->next=nullptr;
        ListNode* r=head;

        while(a&&b)
        {
            if(a->val<b->val)
            {
                r->next=a;
                a=a->next;
            }
            else
            {
                r->next=b;
                b=b->next;
            }

            r=r->next;
        }

        if(a)
            r->next=a;
        if(b)
            r->next=b;

        return head->next;
    }
};
相关推荐
懒羊羊大王&19 小时前
模版进阶(沉淀中)
c++
owde19 小时前
顺序容器 -list双向链表
数据结构·c++·链表·list
GalaxyPokemon20 小时前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++
W_chuanqi20 小时前
安装 Microsoft Visual C++ Build Tools
开发语言·c++·microsoft
A旧城以西20 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea
tadus_zeng20 小时前
Windows C++ 排查死锁
c++·windows
EverestVIP20 小时前
VS中动态库(外部库)导出与使用
开发语言·c++·windows
胡斌附体21 小时前
qt socket编程正确重启tcpServer的姿势
开发语言·c++·qt·socket编程
GalaxyPokemon21 小时前
Muduo网络库实现 [十] - EventLoopThreadPool模块
linux·服务器·网络·c++
守正出琦21 小时前
日期类的实现
数据结构·c++·算法