# Remove duplicate Circular Linked list

删除所有的重复节点，有两种问题，第一个是仅仅删除重复的，第二种删除全部节点。要确定的事链表事排序的，如果不是排序的就用hastable去做。

[https://www.geeksforgeeks.org/remove-duplicates-from-an-unsorted-linked-list/](https://www.geeksforgeeks.org/remove-duplicates-from-an-unsorted-linked-list/)

1->1->2->3->1

（1） 保留一个节点，删除多余的重复节点，

```
def delDuplicate(head):
    if head == None or head.next == None:
        return head
    dummy = LinkedList(0)
    dummy = head

    while head and head.next:
        if head.val == head.next.val:
            head = head.next.next
        else:
            head = head.next
        if head == dummy:
            break
    return dummy
```

(2) 一个节点也不保留，全部删除。

```
def delDuplicate(head):
    if head == None or head.next == None:
        return head
    dummy = LinkedList(0)
    dummy.next = head
    head = dummy

    while head and head.next:
        if head.next.val == head.next.next.val:
            val = head.next
            while head.next and head.next.val == val:
                head.next = head.next.next
        else:
            head = head.next
```
