题解 | #牛群的合并 | Java

牛群的合并

https://www.nowcoder.com/practice/d0cb24e1494e4f45a4b7d1a17db0daef?tpId=354&tqId=10594763&ru=%2Fpractice%2F38467f349b3a4db595f58d43fe64fcc7&qru=%2Fta%2Finterview-202-top%2Fquestion-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D354

参考 https://www.nowcoder.com/practice/d728938f66ac44b5923d4f2e185667ec 合并两群能量值

这里考察链表合并,根据上面的题目,其实这里就是多个链表合并,从集合中依次取出链表两两进行合并即可得到最后一个完整合并后的链表

43行可以来简化44-49的代码

import java.util.*;

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

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param lists ListNode类一维数组
     * @return ListNode类
     */
    public ListNode mergeKLists (ListNode[] lists) {
        // write code here
        ListNode res = null;
        for(ListNode ls : lists){
            res = mergeTwoKLists(res,ls);
        }
        return res;
    }

    public ListNode mergeTwoKLists (ListNode l1, ListNode l2) {
        ListNode res = new ListNode(-1);
        ListNode temp = res;
        while (l1 != null && l2 != null) {
            if (l1.val <= l2.val) {
                temp.next = l1;
                l1 = l1.next;
            } else {
                temp.next = l2;
                l2 = l2.next;
            }
            temp = temp.next;
        }
	  temp.next = l1!=null? l1 : l2;
        /*if (l1 != null) {
            temp.next = l1;
        }
        if (l2 != null) {
            temp.next = l2;
        }*/
        return res.next;
    }
}

#面试高频TOP202#
全部评论

相关推荐

08-29 10:07
已编辑
门头沟学院 嵌入式工程师
是海笔吗
鼠鼠能上岸吗:有没有可能这是美的(
投递美团等公司10个岗位
点赞 评论 收藏
分享
07-11 18:47
已编辑
门头沟学院 后端工程师
在看数据的孤勇者很想...:如果你是在校硕士,六段大厂实习一眼假,假设一段实习两个月,硕一暑假,硕一寒假,大四暑假,大四寒假,大三寒假,大三暑假,哥们,你怎么卷吗,寒假基本两个月在企业实习不现实,所以你可能是日常实习,但是你不可能每段日常实习都是两个月吧,他们日常实习都是三个月起步这样,所以你往前推一下,一段日常实习,就三个月,敢情你大学生课都不上,全在实习吗?你自己问问自己,六段大厂实习,一点没学到,自己说出来会不会笑呀,不管学历,但凡有一段大厂实习都很牛逼了
投递米哈游等公司10个岗位
点赞 评论 收藏
分享
这一生如履薄冰:产品经理现在都要会微调大模型了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务