建立一棵二叉树,求二叉树中叶结点的个数、二叉树结点总数以及二叉树的深度。
时间: 2023-11-13 18:08:10 浏览: 100
好的,下面是建立二叉树并求解的 Python 代码:
```python
# 定义二叉树节点
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 计算二叉树的深度
def get_depth(root):
if not root:
return 0
return 1 + max(get_depth(root.left), get_depth(root.right))
# 计算二叉树中叶节点的个数
def count_leaves(root):
if not root:
return 0
if not root.left and not root.right:
return 1
return count_leaves(root.left) + count_leaves(root.right)
# 计算二叉树的总结点数
def count_nodes(root):
if not root:
return 0
return 1 + count_nodes(root.left) + count_nodes(root.right)
# 建立二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
root.right.left = TreeNode(6)
root.right.right = TreeNode(7)
# 输出结果
print("叶节点个数:", count_leaves(root))
print("二叉树结点总数:", count_nodes(root))
print("二叉树深度:", get_depth(root))
```
运行结果为:
```
叶节点个数: 4
二叉树结点总数: 7
二叉树深度: 3
```
以上代码中,我们先定义了二叉树节点的类 `TreeNode`,然后分别定义了三个函数 `get_depth`、`count_leaves` 和 `count_nodes`,分别用于计算二叉树的深度、叶节点个数和结点总数。
最后通过建立二叉树并调用这三个函数进行测试。
阅读全文