1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class Solution { public ListNode sortList(ListNode head) { if (head == null || head.next == null) { return head; } List<ListNode> nodes = new ArrayList<>(); ListNode p = head; while (p != null) { nodes.add(p); p = p.next; } nodes.sort(Comparator.comparingInt(node -> node.val)); for (int i = 0; i < nodes.size() - 1; i++) { nodes.get(i).next = nodes.get(i + 1); } nodes.get(nodes.size() - 1).next = null; return nodes.get(0); } }
|