排序链表

给定链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。

  • 输入:head = [4,2,1,3]
    输出:[1,2,3,4]

  • 输入:head = [-1,5,3,4,0]
    输出:[-1,0,3,4,5]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var sortList = function(head) {
var arr = []
var p = head
while (p) {
arr.push(p)
p = p.next
}
arr.sort((a, b) => a.val - b.val)
var len = arr.length - 1
for (var i = 0; i < len; i++) {
arr[i].next = arr[i + 1]
}
if(!arr.length)
{
return null
}
arr[len].next = null
return arr[0]
};