描述
给定一个无序单链表,实现单链表的排序(按升序排序)。
示例1
输入:
[1,3,2,4,5]
复制返回值:
{1,2,3,4,5}
复制
-
值排序,不是真正做到链表排序,直接遍历整个链表,用一个数组存储所有的val,然后进行排序,最后将排序完的值赋值给链表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import
java.util.*;
public
class
Solution {
public
ListNode sortInList (ListNode head) {
// write code here
if
(head ==
null
|| head.next ==
null
)
return
head;
ArrayList<Integer> list =
new
ArrayList<>();
ListNode tmp = head;
while
(tmp !=
null
){
list.add(tmp.val);
tmp = tmp.next;
}
list.sort((a,b)->{
return
a-b;});
ListNode temp = head;
int
i =
0
;
while
(temp !=
null
){
temp.val = list.get(i++);
temp = temp.next;
}
return
head;
}
}