Insert node at middle of linked list in python

Suppose we are inserted the following (1, 2, 3, 4, 5, 6, 7) node in a sequence. In this post are implement second approach.

insert linked list node in middle position
#  Python 3 Program for
#  Insert linked list element at middle position

#  Linked list node
class LinkNode :
    def __init__(self, data) :
        self.data = data
        self.next = None
    

class LinkedList :
    #  Class constructors
    def __init__(self) :
        self.head = None
    
    #  Insert node in middle position
    def insert(self, value) :
        #  Create a new node
        node = LinkNode(value)
        if (self.head == None) :
            #  First node
            self.head = node
        else :
            temp = self.head
            middle = self.head
            #  Find the middle node
            while (temp.next != None and 
                   temp.next.next != None) :
                temp = temp.next.next
                middle = middle.next
            
            #  add node
            node.next = middle.next
            middle.next = node
        
    
    #  Display linked list element
    def display(self) :
        if (self.head == None) :
            return
        
        temp = self.head
        #  iterating linked list elements
        while (temp != None) :
            print(temp.data, end = " → ")
            #  Visit to next node
            temp = temp.next
        
        print("NULL")
    

def main() :
    sll = LinkedList()
    #  Add node
    sll.insert(1)
    sll.insert(2)
    sll.insert(3)
    sll.insert(4)
    sll.insert(5)
    sll.insert(6)
    sll.insert(7)
    #  1 → 3 → 5 → 7 → 6 → 4 → 2 → NULL
    sll.display()

if __name__ == "__main__": main()
python insert linked list node in middle position
 1 → 3 → 5 → 7 → 6 → 4 → 2 → NULL


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved