删除链表的重复节点

# 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 
posted @ 2021-03-07 21:23  KbMan  阅读(42)  评论(0编辑  收藏  举报