# -*- coding:utf8 -*-
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class LinkedList:
def __init__(self, data_list=None):
self.head = ListNode(data_list[0])
current_node = self.head
for val in data_list[1:]:
current_node.next = ListNode(val)
current_node = current_node.next
def append(self, data):
if self.head is None:
self.head = ListNode(data)
else:
current_node = self.head
while current_node.next:
current_node = current_node.next
current_node.next = ListNode(data)
def print_list(self):
current_node = self.head
while current_node:
print(current_node.val)
current_node = current_node.next
class Solution:
def removeDuplicateNodes(self, head: ListNode) -> ListNode:
pre = None
cur = head
s = set()
while cur:
if cur.val in s:
pre.next = cur.next
else:
s.add(cur.val)
pre = cur
cur = cur.next
return head
ss = LinkedList([1, 2, 3, 3, 2, 1])
ss.append(5)
print(ss.print_list())