Remove duplicate element from sorted Linked List Python

PROGRAM TO REMOVE DUPLICATES FROM A SORTED LINKED LIST




import math
   
# Link list node 
class Node: 
     
    def __init__(self, data):
         
        self.data = data 
        self.next = None
   
# The function removes duplicates 
# from the given linked list
def removeDuplicates(head): 
     
    # Do nothing if the list consist of
    # only one element or empty 
    if (head == None and
        head.next == None):
        return
     
    # Consturct a pointer
    # pointing towards head
    current = head
     
    # Initalise a while loop till the
    # second last node of the linkedlist
    while (current.next):
         
        # If the data of current and next
        # node is equal we will skip the
        # node between them
        if current.data == current.next.data:
            current.next = current.next.next
             
        # If the data of current and
        # next node is different move
        # the pointer to the next node
        else:
            current = current.next
     
    return
   
# UTILITY FUNCTIONS 
# Function to insert a node at the 
# beginging of the linked list 
def push(head_ref, new_data): 
     
    # Allocate node 
    new_node = Node(new_data) 
               
    # Put in the data 
    new_node.data = new_data 
                   
    # Link the old list off
    # the new node 
    new_node.next = head_ref     
           
    # Move the head to point
    # to the new node 
    head_ref = new_node
     
    return head_ref
   
# Function to print nodes
# in a given linked list 
def printList(node): 
     
    while (node != None): 
        print(node.data, end = " "
        node = node.next
       
# Driver code
if __name__=='__main__'
   
    head = None
     
    head = push(head, 20
    head = push(head, 13
    head = push(head, 13
    head = push(head, 11
    head = push(head, 11
    head = push(head, 11)                                 
   
    print("List before removal of " 
          "duplicates ", end = "") 
    printList(head) 
   
    removeDuplicates(head) 
   
    print("\nList after removal of " 
          "elements ", end = "") 
           
    printList(head)     


OUTPUT
List before removal of duplicates
11 11 11 13 13 20 
List after removal of elements
11 13 20

Comments

Popular posts from this blog

Find first non-repeating character Python

Find Duplicates Java

Special Keyboard Java