面试算法-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;
    }
}
相关推荐
小豆庄8 小时前
视频脱敏引擎的追踪难题:转场误判定、ID撞号和淡入窗口
qt·算法·目标检测·音视频·视频·敏捷流程
_张一凡8 小时前
【AIGC面试面经第15期】AI 视频核心基础知识相关问答
面试·职场和发展·aigc
海清河晏1118 小时前
加油站问题
数据结构·算法·leetcode
萨小耶8 小时前
AI 面试答题链路源码分析:Redis 幂等、题目锁与状态机如何配合
人工智能·redis·面试
GG.WinGel8 小时前
质数数目(蓝桥杯练习题)
java·数据结构·算法·青少年编程·蓝桥杯
艾iYYY8 小时前
进程的状态
算法
秋天的怀念_David8 小时前
算法一千零一夜 · 第十七夜 长街点灯
java·程序人生·算法
CV爱数码8 小时前
论文精读|RED-CNN:残差编解码网络,低剂量 CT 去噪的经典基线
网络·人工智能·算法·cnn·ct·重建·x-ray
Sailing9 小时前
【封闭结束3】ReAct 循环:从一次 Function Call 到多步 Agent
人工智能·面试·agent
JustNow_Man9 小时前
【Harness】本地文本向量化搜索解决方案--qmd
git·python·算法