【发布时间】:2026-01-01 09:10:01
【问题描述】:
我正在尝试实现 BST,但我的树的头部值每次都返回 None。我尝试在 Python 中查找其他实现,但它们通常只是声明一个根并将其传递到类本身之外,而不是将头部自身包含在类中。
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def __repr__(self):
return self.data
def __str__(self):
return str(self.data)
class Tree:
def __init__(self, nodes):
self.head = None
if nodes is not None:
for elem in nodes:
self.insert(self.head, elem)
print(self.head) #prints out None every time
def insert(self, currentNode, data):
if(currentNode == None):
currentNode = Node(data)
if(data != currentNode.data):
if(data < currentNode.data):
if(currentNode.left is None): currentNode.left = Node(data)
else: self.insert(currentNode.left, data)
elif(data > currentNode.data):
if(currentNode.right is None): currrentNode.right = Node(data)
else: self.insert(currentNode.right, data)
def inOrder(self, data=None, visitedHead=False):
if not visitedHead:
self.inOrder(self.head.left, True)
print(self.head)
self.inOrder(self.head.right, True)
elif(data == None): return
else:
self.inOrder(data.left, True)
print(data)
self.inOrder(data.right, True)
treeTime = Tree([1, 80, 3, 0])
【问题讨论】:
-
您在代码中的哪个位置实际上将任何内容分配给
self.head?这个currentNode = Node(data)只创建了一个局部变量,它实际上并没有将任何东西附加到你的树上。
标签: python data-structures binary-search-tree