题解 | #牛群的合并#
牛群的合并
https://www.nowcoder.com/practice/d0cb24e1494e4f45a4b7d1a17db0daef
知识点
链表,排序
解题思路
不管之前是不是排序的,直接把全部节点放到list里面,再根据val重新将全部节点按照从小到大排序。
不过他之前排过序的就可以确定最后一个节点的next一定是空。
Java题解
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 List<ListNode> list = new ArrayList<>(); for (ListNode listNode : lists) { while(listNode != null) { list.add(listNode); listNode = listNode.next; } } list.sort((o1,o2) -> o1.val - o2.val); ListNode ans = new ListNode(0); ListNode curr = ans; for (ListNode listNode : list) { curr.next = listNode; curr = curr.next; } return ans.next; } }