Remove Duplicated from Sorted List II
Given the head of a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. Return the linked list sorted as well.
Input: head = [1,2,3,3,4,4,5]
Output: [1,2,5]Approach1: Two pass - Dictionary
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
dummy = curr = ListNode(None)
dummy.next = head
curr = curr.next
count = {}
while curr:
count[curr.val] = count.get(curr.val, 0) + 1
curr = curr.next
curr = dummy
while curr.next:
if count[curr.next.val] > 1:
curr.next = curr.next.next
else:
curr = curr.next
return dummy.next Approach2: One Pass (optimal)
Last updated