题解 | #牛群的合并 | 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#