import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 * }
 */

public class Solution {
    /**
     *
     * @param head ListNode类 the head node
     * @return ListNode类
     */
    public ListNode sortInList (ListNode head) {

        int [] num =  sort(head);
        ListNode node = new ListNode(-1);
        ListNode h = node;
        for (int i = 0; i < num.length; i++) {
            h.next = new ListNode(num[i]);
            h = h.next;
        }

        // write code here
        return node.next;
    }

    private int[] sort(ListNode head1) {
        ListNode cur = head1;
        int index = 0;

        while (cur != null) {
            cur = cur.next;
            index++;
        }
        int[] arr = new int[index];
        cur = head1;
        for (int i = 0; i < arr.length; i++) {
            arr[i] = cur.val;
            cur = cur.next;

        }
        Arrays.sort(arr);
        return arr;

    }
}
1.先将链表转为数组排序
2.然后创建一个新链表,遍历数组,将数组数字,放到新建的链表