面试算法-167-合并 K 个升序链表

题目

给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。

示例 1:

输入:lists = \[1,4,5,1,3,4,2,6]

输出:1,1,2,3,4,4,5,6

解释:链表数组如下:

1-\>4-\>5, 1-\>3-\>4, 2-\>6

将它们合并到一个有序链表中得到。

1->1->2->3->4->4->5->6

java 复制代码
class Solution {
    public ListNode mergeKLists(ListNode[] lists) {
        ListNode result = null;
        for (ListNode item : lists) {
            result = merge(result, item);
        }
        return result;
    }

    public ListNode merge(ListNode head1, ListNode head2) {
        ListNode dummy = new ListNode(0);
        ListNode p1 = dummy;
        while (head1 != null && head2 != null) {
            if (head1.val <= head2.val) {
                p1.next = head1;
                head1 = head1.next;
            } else {
                p1.next = head2;
                head2 = head2.next;
            }
            p1 = p1.next;
        }
        p1.next = head1 == null ? head2 : head1;
        return dummy.next;
    }
}
相关推荐
手写码匠6 小时前
手写 GraphRAG:从零实现图增强检索增强生成系统
人工智能·深度学习·算法·aigc
BomanGe16 小时前
NSK重载高刚性滚珠丝杠技术详解
经验分享·算法·规格说明书
Matrix_117 小时前
手机里的计算摄影:广角形变校正算法
人工智能·算法·智能手机·计算摄影
WBluuue7 小时前
数据结构与算法:有序表(二):跳表
数据结构·c++·算法·skiplist
IT龟苓膏7 小时前
并发深度解析】硬核手撕 ForkJoinPool + WorkStealing + CompletableFuture 底层源码与大厂面试演练
面试·职场和发展
x138702859578 小时前
c语言中srtlen(指针使用计算字符长度)、传值和传址调用
c语言·开发语言·算法·visual studio
林希_Rachel_傻希希8 小时前
学React治好了我的焦虑症,1小时速通React 前20分钟。
前端·javascript·面试
海兰8 小时前
【实用程序】电商销售分析仪表盘 — 从零搭建一个AI参与的全栈数据洞察系统
人工智能·学习·算法
zwenqiyu9 小时前
P5283 [十二省联考 2019] 异或粽子题解
c++·学习·算法
wayz119 小时前
Momentum:TSI(真实强度指数)技术指标详解
算法·金融·数据分析·量化交易·特征工程