![]()
1 import java.util.*;
2
3 /*
4 * public class ListNode {
5 * int val;
6 * ListNode next = null;
7 * public ListNode(int val) {
8 * this.val = val;
9 * }
10 * }
11 */
12 public class Solution {
13 /**
14 * @param head 输入链表的头结点
15 * @return 排序后的链表头节点
16 */
17 public ListNode sortInList (ListNode head) {
18 // 申请临时数组用于排序
19 ArrayList<Integer> nums = new ArrayList();
20 // 申请临时节点作为遍历指针
21 ListNode p = head;
22 // 遍历链表将节点值加入数组
23 while(p != null){
24 nums.add(p.val);
25 p = p.next;
26 }
27 // 对数组元素排序
28 Collections.sort(nums);
29 // 将临时节点指向头结点用于排序后的赋值
30 p = head;
31 // 遍历数组赋值
32 for(int i = 0; i < nums.size(); i++){
33 // 将数组元素依次加入链表
34 p.val = nums.get(i);
35 p = p.next;
36 }
37 return head;
38 }
39 }