删除链表的重复节点

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def removeDuplicateNodes(self, head: ListNode) -> ListNode:
        # 做一个缓冲区,存放不重复节点的值
        if not head:
            return None
        buffer_set = set()
        buffer_set.add(head.val)
        pre = head
        cur = head.next
        while cur:
            if cur.val in buffer_set:
                pre.next = cur.next
                cur = cur.next
            else:
                buffer_set.add(cur.val)
                pre = cur
                cur = cur.next

        return head 
原文地址:https://www.cnblogs.com/KbMan/p/14496489.html