任意创建一棵二叉树,统计该二叉树的叶子结点数代码
时间: 2023-06-15 18:08:04 浏览: 84
树与二叉树_习题
下面是使用 Python 语言实现的二叉树叶子结点统计的代码:
```python
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def count_leaves(root):
if root is None:
return 0
if root.left is None and root.right is None:
return 1
return count_leaves(root.left) + count_leaves(root.right)
# 测试
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
root.right.left = Node(6)
root.right.right = Node(7)
print(count_leaves(root)) # 输出 4
```
首先定义了一个 `Node` 类来表示二叉树的节点,包括节点的值和左右子节点。然后定义了一个递归函数 `count_leaves` 来统计叶子节点的个数。如果当前节点为空,则返回 0;如果当前节点没有左右子节点,则返回 1;否则递归计算左右子树的叶子节点个数再相加。最后可以通过创建一棵二叉树来测试该函数的正确性。
阅读全文