Python:二叉树中的最大深度

时间:2014-12-11 23:46:26

标签: python oop binary-tree depth

我刚刚在Python中介绍了oop和二进制树,但是当我尝试实现max depth方法时遇到了问题。它似乎没有给我正确的答案,它给了我1,而数字应该更大或者我可能完全误解了一些东西。我在下面添加了一小部分代码

class Node:
def __init__(self, value, left=None, right=None):
    self.left = left
    self.right = right
    self.value = value
    self.count = 1

    def depth(self):
        if self.left:
            left_depth = self.left.depth()
        else:
            left_depth = 0
        right_depth = self.right.depth() if self.right else 0

        print(max(left_depth, right_depth) + 1)



tree = createTree(words) # list of words
tree.depth()

1 个答案:

答案 0 :(得分:2)

        print(max(left_depth, right_depth) + 1)

应该是......

        return max(left_depth, right_depth) + 1

这样您的.depth()方法在调用时实际返回一个值。

然后,当你真正想要一个结果时:

print(tree.depth())

另外,你使用两种不同的if-else结构有点奇怪。

        left_depth = self.left.depth() if self.left else 0
        right_depth = self.right.depth() if self.right else 0

会很好用,也会更简洁。