问题在于使用递归求解二叉树的最大深度。最初来自leetcode https://leetcode.com/problems/maximum-depth-of-binary-tree/solution/
我试图通过一个真实的例子来理解代码。 root = 3,左子= 9,右子= null。应该返回2。
具体来说,我不太了解left_height如何将int值设为1。我知道right_height为None,因此为0。
有人可以真正地讲解示例,真是太好了。我很了解算法。我对处理python对象不是很熟悉。
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
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
答案 0 :(得分:0)
左节点没有左或右,因此它将返回max(0,0)+1
或1
此调用将树返回到根,以返回max(1,0)+1
,最终结果为2
答案 1 :(得分:0)
我点击了链接,因此这些数字无关紧要
3
/ \
9 20
/ \
15 7
与
相同 .
/ \
. .
/ \
. .