Remove duplicate element except the one appears twice in a sorted linked list. For example, input is 1 -> 1 -> 1 -> 2 -> 2 -> 3 -> null; the output is 1 -> 2 -> 2 -> 3 -> null

def remove_duplicate(head):
    ## 1 -> 1 -> 1 -> 2 -> 2 -> 3 -> null
    dummy = LinkedNode(None)
    p1 = dummy
    p2 = head
    count = 1
    while p2:
        if p1.val != p2.val:
            if count == 2:
                p1 = p1.next
            p1.next = p2
            p1 = p2
            count = 1
        else:
            count += 1
        p2 = p2.next
    if count == 2:
        p1 = p1.next
    p1.next = None

results matching ""

    No results matching ""