排序链表
给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表
js
// 此题应是考察归并(脑子不够用...暂排序解决
var sortList = function(head) {
if(head === null) return head
let arr = []
// 将链表放入节点
while(head) {
arr.push(head)
head = head.next
}
arr.sort((a, b) => a.val - b.val) // 根据val升序排列
for(let i = 0; i < arr.length; i++) {
arr[i].next = arr[i+1] || null // 最后一个指向null;不指向null的话会出现循环引用的链表
}
return arr[0] // 返回头节点
}