Given the head node of a singly linked list sorted in ascending order, remove all nodes that have duplicate values, so that only nodes with unique values remain. Return the head node of the resulting sorted linked list.
Example 1
Input: ListNode(2, ListNode(3, ListNode(3, ListNode(5, ListNode(6, ListNode(6))))))
Output: ListNode(2, ListNode(5))
Explanation: Nodes with values 3 and 6 are duplicates and removed. Only 2 and 5 remain.
Example 2
Input: ListNode(7, ListNode(8, ListNode(8, ListNode(9))))
Output: ListNode(7, ListNode(9))
Explanation: Nodes with value 8 are duplicates and removed. Only 7 and 9 remain.
Constraints
Case 1
Input: ListNode(10, ListNode(10, ListNode(11, ListNode(12, ListNode(12, ListNode(13))))))
Expected: ListNode(11, ListNode(13))
Case 2
Input: ListNode(4, ListNode(4, ListNode(4, ListNode(5, ListNode(6, ListNode(7))))))
Expected: ListNode(5, ListNode(6, ListNode(7)))
Case 3
Input: ListNode(1, ListNode(2, ListNode(2, ListNode(3, ListNode(4, ListNode(4, ListNode(5)))))))
Expected: ListNode(1, ListNode(3, ListNode(5)))
Case 4
Input: ListNode(5)
Expected: ListNode(5)
Case 5
Input: None
Expected: None