问题:输入二叉树的根结点,求该树的深度。

从根结点到叶结点依次经过的结点形成树的一条路径,最长的路径长度为树的深度(深度为该路径的结点数)。

原理:

为了找到以根结点为树的根结点的深度需要找到左右子树的深度,依次递归下去不难写出如下代码。

1
2
3
4
5
6
7
8
9
10
11
def tree_depth(tree):
if not tree:
return 0
left = tree_depth(tree.left)
right = tree_depth(tree.right)
if left > right:
left += 1
return left
else:
right += 1
return right

完。