/*来自大连大学的男童*/
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
import java.util.ArrayList;
import java.util.Arrays;
public class Solution {
    public ListNode mergeKLists(ArrayList<ListNode> lists) {
        ListNode res=new ListNode(0);
        int nlength=0; //一维数组的长度
        for(int i=0;i<lists.size();i++){
            ListNode p=lists.get(i);
            while(p!=null){
                nlength++;
                p=p.next;
            }
        }
        int[] n=new int[nlength];  //存放元素的一维数组
        int index=0;
        for(int i=0;i<lists.size();i++){
            ListNode p=lists.get(i);
            while(p!=null){
                n[index++]=p.val;
                p=p.next;
            }
        }
        Arrays.sort(n);
        //将一维数组的元素依次链接在链表上
        ListNode P=res;
        for(int i=0;i<nlength;i++){
            ListNode tmp1=new ListNode(n[i]);
            P.next=tmp1;
            P=P.next;
        }
        return res.next;
    }
}