def Partition(l,x):
     if(l.search(x)):
         current=l.head
         #index=1
         while(current.getData()!=x):
             current=current.getNext()
             #index=index+1
         print("Current Element is",current.getData())
         #print("Current Element index is",index)
         temp=l.head
         previous=Node()
         previous.setNext(temp)
         tempIndex=1
         
         while(temp!=None):
             print("************")
             print("Previous is",previous.getData())
             print("Temp is",temp.getData())
             #print("current.getNext() is",current.getNext())
             print("************")
             exchange=False
             if(temp.getData()>current.getData()):
                 if(temp==l.head):
                     l.head=temp.getNext()
                 previous.setNext(temp.getNext())
                 temp.setNext(current.getNext())
                 current.setNext(temp)       
                 temp=previous
                 exchange=True
                 #l.show
                 
             if(temp.getData()<current.getData()):
                 previous.setNext(temp.getNext())
                 temp.setNext(l.head)
                 l.head=temp
                 temp=previous
                 exchange=True
             
             
             if(not exchange):
                 previous=previous.getNext()
             temp=previous.getNext()
             
             
             l.show()
     else:
        print("Item Not Present in LinkedList")
        return -1  
def removeDuplicate(l):
     print("Original Linked list")
     l.show()
     l= iSort(l)
     print("Final Sorted Linked List is")
     l.show()
     current=l.head
     previous=Node()
     previous.setNext(current)
     while(current.getNext()!=None):
         print("Current is",current.getData())
         print("Previous is",previous.getData())
         if(current.getData()==current.getNext().getData()):
             while(current.getData()==current.getNext().getData()):
                 current=current.getNext()
             previous.setNext(current)
         previous=current
         current=current.getNext()    
         l.show()