题解 | #合并k个已排序的链表#

合并k个已排序的链表

https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param lists ListNode类ArrayList 
     * @return ListNode类
     */
    private ListNode merge(ListNode pHead, ListNode qHead) {
        ListNode dummy = new ListNode(-1), i = pHead, j = qHead, pre = dummy;

        while(i != null && j != null) {
            if(i.val > j.val) {
                pre.next = j;
                j = j.next;
            }
            else {
                pre.next = i;
                i = i.next;
            }
            pre = pre.next;
        }

        if(i != null) pre.next = i;
        if(j != null) pre.next = j;
        return dummy.next;
    }

    public ListNode mergeKLists (ArrayList<ListNode> lists) {
        // write code here
        if(lists.size() == 0) return null;
        if(lists.size() == 1) return lists.get(0);
        if(lists.size() == 2) return merge(lists.get(0), lists.get(1));

        int len = lists.size(), mid = len >> 2;
    
        ArrayList<ListNode> arr = new ArrayList();
        ArrayList<ListNode> arr1 = new ArrayList();
        ArrayList<ListNode> res = new ArrayList();


        arr.addAll(lists.subList(0, mid+1));
        arr1.addAll(lists.subList(mid+1, len));

        res.add(mergeKLists(arr));
        res.add(mergeKLists(arr1));

        return mergeKLists(res);
    }
}

归并排序嘛

全部评论

相关推荐

KKorz:是这样的,还会定期默写抽查
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
8880次浏览 81人参与
# 你的实习产出是真实的还是包装的? #
1654次浏览 40人参与
# 巨人网络春招 #
11289次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7346次浏览 40人参与
# 重来一次,我还会选择这个专业吗 #
433273次浏览 3926人参与
# 简历第一个项目做什么 #
31477次浏览 324人参与
# 米连集团26产品管培生项目 #
5554次浏览 214人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186831次浏览 1118人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152247次浏览 887人参与
# 研究所笔面经互助 #
118840次浏览 577人参与
# 简历中的项目经历要怎么写? #
309917次浏览 4184人参与
# 面试紧张时你会有什么表现? #
30468次浏览 188人参与
# 你今年的平均薪资是多少? #
212961次浏览 1039人参与
# AI时代,哪些岗位最容易被淘汰 #
63273次浏览 795人参与
# 我的求职精神状态 #
447946次浏览 3128人参与
# 你最满意的offer薪资是哪家公司? #
76397次浏览 374人参与
# 高学历就一定能找到好工作吗? #
64281次浏览 620人参与
# 牛客AI文生图 #
21398次浏览 238人参与
# 你怎么看待AI面试 #
179756次浏览 1224人参与
# 正在春招的你,也参与了去年秋招吗? #
363136次浏览 2635人参与
# 腾讯音乐求职进展汇总 #
160544次浏览 1109人参与
# 职能管理面试记录 #
10789次浏览 59人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务