利用新的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;
    }