题解 | #合并k个已排序的链表#
合并k个已排序的链表
https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6
import java.util.ArrayList;
import java.util.Collections;
public class FiveMergeKLists {
public ListNode mergeKLists(ArrayList<ListNode> lists) {
//如果lists为空
if (lists.isEmpty()){
return null;
}
//创建新的list依次遍历lists中的ListNode中的元素
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < lists.size(); i++) {
ListNode node = lists.get(i);
while (node != null){
list.add(node.val);
node = node.next;
}
}
//排序
Collections.sort(list);
//如果排序后为空
if (list.isEmpty()){
return null;
}
//list转换为链表
ListNode newHead = new ListNode(list.get(0));
ListNode cur = newHead;
for (int i = 1; i < list.size(); i++) {
cur.next = new ListNode(list.get(i));
cur = cur.next;
}
return newHead;
}
}
Java语言求解

查看8道真题和解析