【发布时间】:2017-08-07 17:16:47
【问题描述】:
这是我在 python 中创建 BST 的代码,一切正常,但是当我访问 height 函数时,它会给出类似“AttributeError: 'NoneType' object has no attribute height”的错误,我是在 python 中创建数据结构的新手,任何帮助都会被欣赏
class Node:
def __init__(self, data):
self.left = None
self.right = None
self.data = data
def insert(self, data):
if self.data:
if data < self.data:
if self.left is None:
self.left = Node(data)
else:
self.left.insert(data)
elif data > self.data:
if self.right is None:
self.right = Node(data)
else:
self.right.insert(data)
else:
self.data = data
def print_tree(self):
if self.left:
self.left.print_tree()
print (self.data)
if self.right:
self.right.print_tree()
def height(self):
if self.data is None:
return 0
else:
return 1 + max(self.left.height(),self.right.height())
root = Node(8)
root.insert(3)
root.insert(10)
root.insert(1)
root.insert(6)
root.insert(4)
root.insert(7)
root.insert(14)
root.insert(13)
root.print_tree()
root.height()
【问题讨论】:
-
对于叶节点,
self.data不是 None ,但self.left和self.right将是 None ,因此问题。
标签: python data-structures tree height binary-search-tree