Python 从树中删除特定节点

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删除部分。其余部分工作正常

    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属性,但没有;有一个叫做数据,这可能就是你的意思。

将来,包括我刚从一开始添加的回溯。