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