AlgoLounge

Sort List

hard

Given the head of a linked list, return the list after sorting it in ascending order.

Example 1

Input: head = [4,2,1,3]
Output: [1,2,3,4]

Example 2

Input: head = [-1,5,3,4,0]
Output: [-1,0,3,4,5]

Example 3

Input: head = []
Output: []

Constraints

  • The number of nodes in the list is in the range [0, 5 * 10⁴].
  • -10⁵ <= Node.val <= 10⁵

Follow-up: Can you sort the linked list in O(n log n) time and O(1) memory (i.e., constant space)?

How the tests work: lists are written as arrays — [1,2,3] is the chain 1 → 2 → 3. Your function receives real ListNode objects, and the list you return is read back into an array.

TypeScript
Loading editor…
List of test cases (6)
Case 1
head = [4,2,1,3]
Case 2
head = [-1,5,3,4,0]
Case 3
head = []
Case 4
head = [1]
Case 5
head = [3,1,2]
Case 6
head = [5,4,3,2,1]