面试算法-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;
    }
}
相关推荐
怕浪猫5 小时前
3 小时搭一个能用的聊天机器人后端,我用了这套技术栈
后端·面试·github
Jasmine_llq5 小时前
《P8816 [CSP-J 2022] 上升点列》
数据结构·算法·贪心·排序·二维动态规划 dp·类背包状态转移
hetao17338375 小时前
2026-10-19 hetao1733837 的刷题记录
c++·算法
辛苦才能5 小时前
C++ 哈希表深度解析:删除为什么必须打标记,负载因子为什么卡 0.7
开发语言·数据结构·c++·算法
用户84913717547165 小时前
【技术干货】MySQL联合索引底层原理 | 最左前缀原则详解
mysql·面试
m0_639906945 小时前
HashMap:哈希扰动、扩容源码、红黑树转换、并发问题
java·算法·哈希算法
开开心心就好7 小时前
白天晚上自动调蓝光,护眼工具亮度可调
服务器·开发语言·算法·pdf·ocr·intellij-idea·idea
PBitW7 小时前
行内编辑,如何防止后端未返回,直接全部更新了?
前端·面试
零售校长7 小时前
二七区零售门店店长面试,重点在哪几处
面试·职场和发展·零售
考研保研资料分享7 小时前
农学跨保清华基础医学直博:四方联合与四校考核复盘(2024)
面试