Remove Duplicates from Sorted Linked List II
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example, Given 1->2->3->3->4->4->5, return 1->2->5. Given 1->1->1->2->3, return 2->3.
URL: https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/
# Definition for singly-linked list
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def deleteDuplicates(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if head == None:
return head
else:
dup_dict = {}
current = head
while current != None:
if current.val in dup_dict:
dup_dict[current.val] += 1
else:
dup_dict[current.val] = 1
current = current.next
list_values = []
current = head
while current != None:
if dup_dict[current.val] > 1:
pass
else:
list_values.append(current.val)
current = current.next
if list_values == []:
return None
else:
node1 = ListNode(list_values[0])
head = node1
for entries in list_values[1:]:
new_node = ListNode(entries)
node1.next = new_node
node1 = new_node
return head