Leetcode Hot100 第58题 23.合并K个升序链表

cpp 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
        ListNode* dummy = new ListNode(-1);
        ListNode* cur = dummy;
        while(list1&&list2){
            if(list1->val<list2->val){
                cur->next = list1;
                list1=list1->next;
            }else{
                cur->next = list2;
                list2=list2->next;
            }
            cur=cur->next;
        }
        if(list1) cur->next=list1;
        if(list2) cur->next=list2;
        return dummy->next;
    }
};
cpp 复制代码
class Solution {
public:
    ListNode* mergeKLists(vector<ListNode*>& lists) {
        return traverse(lists,0,lists.size()-1);
    }
    ListNode* traverse(vector<ListNode*>& lists,int l, int r){
        if(l>r) return nullptr;
        if(l==r) return lists[l];
        ListNode* left = traverse(lists, l, l+(r-l)/2);
        ListNode* right = traverse(lists, l+(r-l)/2 + 1, r);
        return mergeTwoLists(left,right);
    }
    ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
        ListNode* dummy = new ListNode(-1);
        ListNode* cur = dummy;
        while(list1&&list2){
            if(list1->val<list2->val){
                cur->next = list1;
                list1=list1->next;
            }else{
                cur->next = list2;
                list2=list2->next;
            }
            cur=cur->next;
        }
        if(list1) cur->next=list1;
        if(list2) cur->next=list2;
        return dummy->next;
    }
};
相关推荐
寻星探路几秒前
【Python 全栈测开之路】Python 进阶:库的使用与第三方生态(标准库+Pip+实战)
java·开发语言·c++·python·ai·c#·pip
2301_800256111 小时前
第九章:空间网络模型(空间网络查询、数据模型、Connected、with Recursive、pgRouting)
网络·数据库·算法·postgresql·oracle
逑之2 小时前
C语言笔记10:sizeof和strlen,指针与数组
c语言·笔记·算法
求梦8202 小时前
【力扣hot100题】旋转图像(15)
算法·leetcode·职场和发展
海边的Kurisu3 小时前
苍穹外卖日记 | Day1 苍穹外卖概述、开发环境搭建、接口文档
java
C雨后彩虹6 小时前
任务最优调度
java·数据结构·算法·华为·面试
heartbeat..6 小时前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
Jing_jing_X6 小时前
AI分析不同阶层思维 二:Spring 的事务在什么情况下会失效?
java·spring·架构·提升·薪资
少林码僧8 小时前
2.31 机器学习神器项目实战:如何在真实项目中应用XGBoost等算法
人工智能·python·算法·机器学习·ai·数据挖掘
钱彬 (Qian Bin)8 小时前
项目实践15—全球证件智能识别系统(切换为Qwen3-VL-8B-Instruct图文多模态大模型)
人工智能·算法·机器学习·多模态·全球证件识别