
思路:创建一个数组列表,将所有的链表放入数组中,将数组自动排序,再将数组返回成链表;
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;
}
}
Java实现合并K个排序链表,
该代码片段展示了一个Java解决方案,用于合并多个已排序的链表。首先,它创建一个整数数组并将所有链表的值存入,然后对数组进行排序。接着,它从排序后的数组构建一个新的链表并返回。
8786

被折叠的 条评论
为什么被折叠?



