I am having trouble with the following code segment. I can't really figure out why it doesn't work, any help is appreciated. It's a very very simple mistake that I do not understand:
class Node():
def __init__(self, val = 0, next_node = None):
self.val = val
self.next = next_node
def add_node(self, new_val):
temp = self
self.val = new_val
self.next = temp
if __name__ == '__main__':
u = Node(1)
u.add_node(5)
print(u.next.val)
Prints 5 and it keeps printing 5 if you write u.next.next.next.val
, what I want is u.val = 5
, u.next.val = 1
and u.next.next = None
You'd have to instantiate a new Node
in add_node
, and then set it as next
of self
.