# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    def deleteDuplication(self, pHead):
        # write code here
        visited=set()
        delete=set()
        start=ListNode(None)
        start.next=pHead
        while pHead:
            if pHead.val not in visited:
                visited.add(pHead.val)
            else:
                delete.add(pHead.val)
            pHead=pHead.next
        head=start
        while start.next:
            if start.next.val in delete:
                temp=start.next.next
                start.next=temp
            else:
                start=start.next
        return head.next