为什么值self._head没有更新?

时间:2020-11-07 04:06:36

标签: python-3.x linked-list private

我正在尝试实现一个链接列表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似乎没有更新,但是我不知道为什么。

0 个答案:

没有答案
相关问题