Python 从树中删除特定节点
下面是一个涉及树木的程序。我目前正在尝试从创建的树中删除特定节点。有人能就我做错了什么提出一些建议吗?有问题的代码是def删除部分。其余部分工作正常Python 从树中删除特定节点,python,Python,下面是一个涉及树木的程序。我目前正在尝试从创建的树中删除特定节点。有人能就我做错了什么提出一些建议吗?有问题的代码是def删除部分。其余部分工作正常 def remove(self, value): if self.root and self.root.value == value: # special case for removing the root self.root = self.root.delete() re
def remove(self, value):
if self.root and self.root.value == value: # special case for removing the root
self.root = self.root.delete()
return
else: # general case, removing a child node of some parent
parent = self.root
while parent:
if value < parent.value:
child = parent.left
if child and child.value == value:
parent.left = child.delete()
return
parent = child
else:
child = parent.right
if child and child.value == value:
parent.right = child.delete()
return
parent = child
错误是由于self.root.value不存在引起的;您可能需要的属性称为数据,而不是值
接下来,节点对象没有delete方法,因此也会失败。将该方法添加到节点,提升其左属性或右属性并重新平衡其子树,或者执行树中的所有工作。删除方法。错误非常明显:您尝试访问节点的value属性,但没有;有一个叫做数据,这可能就是你的意思。将来,包括我刚从一开始添加的回溯。