【发布时间】:2017-12-19 00:02:27
【问题描述】:
我正在尝试为我的 Tree 类实现一个简单的“插入”方法:
class Tree:
def __init__(self, value):
self.node = value
self.leftChild = None
self.rightChild = None
def insert(self, value):
if self.node is None:
self.node = value
return True
if self.node is not value:
if self.node > value:
if self.leftChild is None:
self.leftChild = value
else:
return self.leftChild.insert(value)
if self.node < value:
if self.rightChild is None:
self.rightChild = value
else:
return self.rightChild.insert(value)
else:
return False
tree = Tree(5)
tree.insert(6)
tree.insert(1)
tree.insert(10)
上面的代码给出以下错误:
AttributeError: 'int' 对象没有属性 'insert'
当通过 tree.insert(10) 调用 insert 方法时,错误出现在“return self.rightChild.insert(value)”行。
我尝试用“return insert(self.leftChild, value)”替换错误的行,但这给了我以下错误:
NameError:未定义全局名称“插入”
我不知道如何解决这个问题!
【问题讨论】:
标签: python class recursion binary-search-tree