二叉树统计叶子结点
时间: 2023-07-24 11:18:09 浏览: 109
要统计二叉树中的叶子节点,可以使用递归的方法来求解。递归的基本思路是:如果当前节点为空,则返回0;如果当前节点不为空,但左右子树都为空,则说明当前节点是叶子节点,返回1;否则,递归地求解当前节点的左右子树中的叶子节点数量,然后将它们相加,即可得到当前节点下的叶子节点数量。
以下是一个示例代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def count_leaves(root: TreeNode) -> int:
if not root:
return 0
if not root.left and not root.right:
return 1
return count_leaves(root.left) + count_leaves(root.right)
```
在这个示例代码中,首先定义了一个 `TreeNode` 类来表示二叉树的节点。然后,定义了一个名为 `count_leaves` 的函数,它接受一个二叉树的根节点作为参数,返回该二叉树中叶子节点的数量。
在函数中,首先判断当前节点是否为空,如果是,则返回0;否则,再判断当前节点是否为叶子节点,如果是,则返回1;否则,递归地求解当前节点的左右子树中叶子节点的数量,将它们相加,并返回结果。
阅读全文