二叉搜索树的最大深度

时间:2020-03-31 13:34:33

标签: python python-3.x recursion data-structures binary-tree

我正在尝试编写一个递归函数以获取二进制搜索树的最大深度。我不确定这两种实现之间的区别。他们俩不应该返回相同的结果吗?

代码1:

def maxDepth(self, root: TreeNode) -> int:
        l = r = 0
        if root:
            print(root.val)
            if root.left:
                print(f"In left subtree for root {root.val}")
                l = self.maxDepth(root.left)
                print(f"l: {l}  r: {r}")
            if root.right:
                print(f"In right subtree for root {root.val}")
                r = self.maxDepth(root.right)
                print(f"l: {l}  r: {r}")
            else:
                print("No subtree")       
        return max(l,r) + 1

代码2:

def maxDepth(self, root: TreeNode) -> int:
        l = r = 0
        if root:
            print(root.val)
            if root.left:
                print(f"In left subtree for root {root.val}")
                l = self.maxDepth(root.left) + 1
                print(f"l: {l}  r: {r}")
            if root.right:
                print(f"In right subtree for root {root.val}")
                r = self.maxDepth(root.right) + 1
                print(f"l: {l}  r: {r}")
            else:
                print("No subtree")       
        return max(l,r)

0 个答案:

没有答案