题目描述: 解题思路:
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;
}