【LeetCode】第11天 - 23. 合并K个升序链表

简介: 【LeetCode】第11天 - 23. 合并K个升序链表

题目描述

在这里插入图片描述

解题思路

在开始合并K个升序链表之前,我们应该先思考如何合并2个升序链表,可以参考:https://blog.csdn.net/weixin_43598687/article/details/119508065
在清楚两个升序链表的合并之后,我们可以通过以下思路实现K个升序链表的合并

  • 先将lists[0]和lists[1]合并,得到新链表res;
  • 再将res与lists[2]合并,得到新的res;
  • 依次类推,直到与lists[K-1]合并,得到最终K个升序链表的合并结果。

代码实现

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    //合并两个升序排列的链表
    public ListNode mergeTwoLists(ListNode A, ListNode B){
        ListNode res = new ListNode(0);
        ListNode temp = res;
        while(A != null || B != null){
            if(A == null){
                res.next = B;
                break;
            }if(B == null){
                res.next = A;
                break;
            }
            if(A.val > B.val){
                res.next = B;
                B = B.next;
            }else{
                res.next = A;
                A = A.next;
            }
            res = res.next;
        }
        return temp.next;
    }
    
    public ListNode mergeKLists(ListNode[] lists) {
        if(lists.length == 0) return null;
        ListNode res = lists[0];
        for(int i=1;i<lists.length;i++){
            res = mergeTwoLists(res, lists[i]);        //依次两两合并
        }

        return res;
    }
}
目录
相关文章
|
2月前
《剑指offer》——合并两个排序的链表
《剑指offer》——合并两个排序的链表
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解
|
2月前
|
存储
【合并两个有序数组】LeetCode第88题讲解
【合并两个有序数组】LeetCode第88题讲解
|
16天前
【力扣】21. 合并两个有序链表
【力扣】21. 合并两个有序链表
|
2月前
|
存储 JavaScript
leetcode82. 删除排序链表中的重复元素 II
leetcode82. 删除排序链表中的重复元素 II
22 0
|
2月前
leetcode83. 删除排序链表中的重复元素
leetcode83. 删除排序链表中的重复元素
10 0
|
2月前
leetcode2807.在链表中插入最大公约数
leetcode2807.在链表中插入最大公约数
16 0
|
2月前
leetcode2487.从链表中移除节点
leetcode2487.从链表中移除节点
20 1
|
2月前
|
存储 算法
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)
|
2月前
|
算法 索引
LeetCode刷题--- 138. 复制带随机指针的链表(哈希表+迭代)
LeetCode刷题--- 138. 复制带随机指针的链表(哈希表+迭代)

热门文章

最新文章