这个函数是否可以检查BST(Binary Search Tree)是否有效?

时间:2018-08-01 00:29:28

标签: python binary-search-tree

这是下面的代码,我的思考过程是,如果树中的最小值小于根,树中的最大值大于根,则应检查BST是否有效

String

1 个答案:

答案 0 :(得分:1)

请勿重用名称minmax。他们已经提到了内置功能。

您的minmax函数通过更改self.root来更改树。

您应该先验证左右子节点的值相对于父节点正确,然后再验证植根于这些子节点的每个BST本身是否有效。

class Node:
    def __init__(self, value, left=None, right=None):
        self.value = value
        self.left = left
        self.right = right
    def valid(self):
        if self.left and self.left.value > self.value:
            return False
        if self.right and self.right.value < self.value:
            return False
        return all(node.valid() for node in (self.left, self.right) if node)