题目描述: alt 解题思路:

1、由于传进来的是一个数组,因此我们把数组中每个链表中的数据提取出来放到一个空数组arr中

2、arr.sort()给数组中的数据排序

3、将arr转化成链表(ps:对链表不熟,此为对else内代码的解释记忆防止自己脑袋宕机:两行代码表示告诉节点的下一个节点指向谁,创造关联!)

代码展示:

function mergeKLists( lists ) {
    // write code here
    let arr = [];
    for(let i = 0; i < lists.length; i++) {
        let p = lists[i];
        while(p != null) {
            arr.push(p.val)
            p = p.next
        }
    }
    arr.sort( (a, b) => a-b);
    function ListNode(x){
        this.val = x;
        this.next = null;
    }
    let head = null;
    let rear = null;
    for(let j = 0; j < arr.length; j++) {
        let node = new ListNode(arr[j]);
        if(head == null) {
            head = node;
            rear = node;
        }else {
            rear.next = node;
            rear = node;
        }
    }
    return head;
}