利用新的ArrayList合并k个链表
遍历提供给我们的数组,依次得到各个头结点。
依次遍历每个头结点下的链表,把他们加入新的数组中。
利用Collections.sort()方法得到有序的数组
最后把这个新的数组转换成链表并返回。
public ListNode mergeKLists (ArrayList<ListNode> lists) {
// write code here
if(lists==null){
return null;
}
ArrayList<Integer> list=new ArrayList<>();
for(int i=0;i<lists.size();i++){
ListNode head1=lists.get(i);
while(head1!=null){
list.add(head1.val);
head1=head1.next;
}
}
Collections.sort(list);
ListNode head=new ListNode(0);
ListNode cur=head;
for(int i=0;i<list.size();i++){
cur.next=new ListNode(list.get(i));
cur=cur.next;
}
head=head.next;
return head;
}