so I am learning linked lists in python, but I didn't understand how does the linked list goes to the second node as it assigns the next node as the root node, please explain it to me, thanks.
the code

```
class Node
    def __init__(self,d,n=None,p=None):
        self.data=d
        self.next_node=n
        self.previous_node=p
    def __str__(self):
        return ('(' + str(self.data) + ')')

class linked_list:
    def __init__(self,r=None):
        self.root=r
        self.size=0
    def add(self,d):
        new_node=Node(d,self.root)#here i didn't understand how we assign the next node
        self.root=new_node
        self.size +=1

    def find(self,d):
        this_node=self.root
        while this_node is not None:
            if this_node.data==d:
                print(this_node.next_node)
                return this_node.data
            else:
                this_node = this_node.next_node
        return None
    def remove(self,d):
        this_node=self.root
        previouse_node=None
        while this_node is not None:
            if this_node.data==d:
                if previouse_node is not None:
                    previouse_node.next_node=this_node.next_node
                else:
                    self.root=this_node.next_node
                    self.size -=1
            else:
                previouse_node=this_node
                this_node=this_node.next_node
        return False
    def print_list(self):
        this_node = self.root
        while this_node is not None:
            print(this_node, end='->')
            this_node = this_node.next_node
        print('None')
l_list=linked_list()
l_list.add('4')
l_list.add('40')
l_list.add('5')
l_list.print_list()

```

#////////////////////////////////////////////////////////////////////////////////////