Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

Example 1:


Input: 1->2->3->3->4->4->5
Output: 1->2->5


Example 2:


Input: 1->1->1->2->3
Output: 2->3

Source: leetcode | Difficulty: MEDIUM_HARD
Tags: Data structures

Amortized analysis

Starter code: # 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:
        

Solutions: