" , end=" ") current_node = current_node.next linkedList = LinkedList() linkedList.add_at_start(4) linkedList.add_at_start(45) linkedList.add_at_start(23) linkedList.display()"> " , end=" ") current_node = current_node.next linkedList = LinkedList() linkedList.add_at_start(4) linkedList.add_at_start(45) linkedList.add_at_start(23) linkedList.display()"> " , end=" ") current_node = current_node.next linkedList = LinkedList() linkedList.add_at_start(4) linkedList.add_at_start(45) linkedList.add_at_start(23) linkedList.display()">
class Node : 

    def __init__(self , data ) : 
        self.data = data 
        self.next = None 

class LinkedList : 

    def __init__(self) : 
        self.head = None 

    def add_at_start(self, data):

        node = Node(data)
        node.next = self.head 
        self.head = node 

    def display(self):

        current_node = self.head 

        while (current_node != None) : 
            print(current_node.data , "-->" , end=" ")
            current_node = current_node.next 

linkedList = LinkedList() 

linkedList.add_at_start(4)
linkedList.add_at_start(45)
linkedList.add_at_start(23)

linkedList.display()

image.png

image.png

class Node : 

    def __init__(self , data ) : 
        self.data = data 
        self.next = None 

class LinkedList : 

    def __init__(self) : 
        self.head = None 

    def add_at_start(self, data):

        node = Node(data)
        node.next = self.head 
        self.head = node 

    def add_at_end(self , data):

        node = Node(data)

        current_node = self.head 

        while (current_node.next != None ) :
            current_node = current_node.next 
        
        current_node.next = node 

    def add_at_middle(self , data , index):
        node = Node(data)

        current_node = self.head 

        for i in range(index-1):
            current_node = current_node.next 
        
        node.next = current_node.next 
        current_node.next = node 

    def display(self):

        current_node = self.head 

        while (current_node != None) : 
            print(current_node.data , "-->" , end=" ")
            current_node = current_node.next 

linkedList = LinkedList() 

linkedList.add_at_start(4)
linkedList.add_at_start(45)
linkedList.add_at_start(23)

linkedList.add_at_end(99)

linkedList.add_at_middle(100 , 2)

linkedList.display()

With Delete Method

class Node : 

    def __init__(self , data ) : 
        self.data = data 
        self.next = None 

class LinkedList : 

    def __init__(self) : 
        self.head = None 

    def add_at_start(self, data):

        node = Node(data)
        node.next = self.head 
        self.head = node 

    def add_at_end(self , data):

        node = Node(data)

        current_node = self.head 

        while (current_node.next != None ) :
            current_node = current_node.next 
        
        current_node.next = node 

    def add_at_middle(self , data , index):
        node = Node(data)

        current_node = self.head 

        for i in range(index-1):
            current_node = current_node.next 
        
        node.next = current_node.next 
        current_node.next = node 

    def remove_from_start(self):
        self.head = self.head.next 

    
    def remove_from_end(self):

        current_node = self.head 

        while current_node.next.next != None : 
            current_node = current_node.next 

        # current_node now present at second last element 

        current_node.next = None 

    def remove(self , value):

        current_node = self.head 

        while current_node.next.data != value : 
            current_node = current_node.next 

        current_node.next = current_node.next.next 

    def display(self):
        print("-----------------")

        current_node = self.head 

        while (current_node != None) : 
            print(current_node.data , "-->" , end=" ")
            current_node = current_node.next 

        print("None")

linkedList = LinkedList() 

linkedList.add_at_start(4)
linkedList.add_at_start(45)
linkedList.add_at_start(23)

linkedList.add_at_end(99)

linkedList.add_at_middle(100 , 2)

linkedList.display()

linkedList.remove_from_start()

linkedList.display()

linkedList.remove_from_end()

linkedList.display()

linkedList.remove(100)

linkedList.display()

image.png