思路:创建一个数组列表,将所有的链表放入数组中,将数组自动排序,再将数组返回成链表;
import java.util.*;
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode mergeKLists(ArrayList<ListNode> lists) {
ArrayList<Integer> list = new ArrayList<>();
// if(lists == null){
// return null;
// }
//将所有链表放入一个数组中
for(int i = 0; i < lists.size(); i++){
ListNode tmp = lists.get(i);
while(tmp != null){
list.add(tmp.val);
tmp = tmp.next;
}
}
//将数组排序
Collections.sort(list);
ListNode node = new ListNode(-1);
ListNode cur = node;
//将数组转化成链表
for(int j = 0; j < list.size(); j++){
cur.next = new ListNode(list.get(j));
cur = cur.next;
}
return node.next;
}
}