Given the head node of a singly linked list, return the head node of the linked list after sorting its node values in ascending order.
Example 1
Input: ListNode(7, ListNode(3, ListNode(5, ListNode(2))))
Output: ListNode(2, ListNode(3, ListNode(5, ListNode(7))))
Explanation: Input list is [7,3,5,2]. Sorted list is [2,3,5,7].
Example 2
Input: ListNode(-10, ListNode(0, ListNode(10)))
Output: ListNode(-10, ListNode(0, ListNode(10)))
Explanation: Input list is already sorted.
Example 3
Input: ListNode(8)
Output: ListNode(8)
Explanation: Single node list remains unchanged.
Constraints
Case 1
Input: ListNode(6, ListNode(1, ListNode(9, ListNode(4))))
Expected: ListNode(1, ListNode(4, ListNode(6, ListNode(9))))
Case 2
Input: ListNode(0, ListNode(-2, ListNode(2, ListNode(-2))))
Expected: ListNode(-2, ListNode(-2, ListNode(0, ListNode(2))))
Case 3
Input: None
Expected: None