python求树状图的深度
时间: 2023-11-04 09:04:32 浏览: 30
可以使用递归的方式来求树状图的深度。具体实现如下:
``` python
# 定义二叉树节点类
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 求树的深度
def maxDepth(root: TreeNode) -> int:
if root is None:
return 0
left_depth = maxDepth(root.left)
right_depth = maxDepth(root.right)
return max(left_depth, right_depth) + 1
```
上述代码中,我们首先定义了一个二叉树节点类 `TreeNode`,然后定义了一个求树深度的函数 `maxDepth`。在函数中,我们首先判断当前节点是否为空,如果为空则返回深度为 0。否则,分别递归求解左子树和右子树的深度,然后取两者的较大值加上 1,即为当前节点所在子树的深度。
使用方法:
假设我们有以下二叉树:
```
3
/ \
9 20
/ \
15 7
```
我们可以按照以下方式构造二叉树:
``` python
root = TreeNode(3)
root.left = TreeNode(9)
root.right = TreeNode(20)
root.right.left = TreeNode(15)
root.right.right = TreeNode(7)
```
然后调用 `maxDepth` 函数即可求解该二叉树的深度:
``` python
depth = maxDepth(root)
print(depth) # 输出 3
```