我正在尝试实现一个链接列表add()函数,但是我不确定为什么使用self._head时为什么会出现这样的结果。 代码是
class Node:
def __init__(self, data):
self._data = data
self._next = None
def get_data(self):
return self._data
def set_data(self, new_data):
self._data = new_data
def get_next(self):
return self._next
def set_next(self, new_next):
self._next = new_next
class LinkedList:
def __init__(self):
self._head = None
def add(self, item):
new_Node = Node(item)
if self._head is None:
print("getdata : ",new_Node.get_data())
self._head = new_Node
else:
current_node = self._head
print("getdata : ", current_node.get_data())
while(current_node.get_next() is not None):
print("add_while started : ", current_node.get_data())
current_node = current_node.get_next()
current_node._next = new_Node
l = LinkedList()
l.add(1)
l.add(2)
l.add(3)
l.add(4)
结果是
getdata : 1
getdata : 1
getdata : 1
add_while started : 1
getdata : 1
add_while started : 1
add_while started : 2
我认为self._head似乎没有更新,但是我不知道为什么。