RB树不适用于某些未排序的数组

if(node.parent.parent.parent.right == node.parent.parent):
                            tnode = self.LR(node.parent.parent)
                            node.parent.parent.parent.right = tnode 

这是导致错误的代码部分。假设插入的节点为5,12,10,则导致运行时错误。但是,插入5,10,12即可。 (尽管有10,8,12的作品)。

返回的错误是:

File "Solution.py",line 132,in Balance
    if(node.parent.parent.parent.right == node.parent.parent):
AttributeError: 'NoneType' object has no attribute 'right'

有人可以协助我解决此问题吗?代码已经太大了,我很困惑。

vcx111 回答:RB树不适用于某些未排序的数组

首先,请确保您实际上是在说“ node.parent.parent.parent”,因为RB重新平衡的通常规则仅要求在任何给定阶段都要检查父母和祖父母。

如果您实际上是指node.parent.parent.parent,请确保在检查“正确”之前它不为null。

本文链接:https://www.f2er.com/2607579.html

大家都在问