我正在努力解决一个问题 二叉树的最大深度 - LeetCode
这个问题是在Leetcode教程中关于尾递归的练习题。 尾递归 - LeetCode
从层级定义出发的标准解决方案。Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Note: A leaf is a node with no children.
Example:
Given binary tree
[3,9,20,null,null,15,7]
,3 / \ 9 20 / \ 15 7
return its depth = 3.
class Solution:
def maxDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if root is None:
return 0
else:
left_height = self.maxDepth(root.left)
right_height = self.maxDepth(root.right)
return max(left_height, right_height) + 1
然而,这不是尾递归。
尾递归是一种递归形式,其中递归调用是递归函数的最后一个指令。而且在函数中应该只有一个递归调用。
我阅读了所有其他提交和讨论,但没有找到尾递归的解决方案。
如何使用尾递归解决问题?