head of a sorted linked list, delete all duplicates such that each element appears only once. Return the linked list sorted as well.
Input: head = [1,1,2] Output: [1,2]
Input: head = [1,1,2,3,3] Output: [1,2,3]
- The number of nodes in the list is in the range
-100 <= Node.val <= 100
- The list is guaranteed to be sorted in ascending order.
Solution in python
# Definition for singly-linked list class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class Solution: def deleteDuplicates(self, head: ListNode) -> ListNode: curr_node = head while curr_node and curr_node.next: next_node = curr_node.next while next_node and curr_node.val == next_node.val: next_node = next_node.next curr_node.next = next_node curr_node = next_node return head