首页 > 解决方案 > 二叉搜索树的最大深度

问题描述

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

代码 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)

标签: pythonpython-3.xrecursiondata-structuresbinary-tree

解决方案


推荐阅读