📜  计算二叉树中叶节点的程序(1)

📅  最后修改于: 2023-12-03 14:57:27.422000             🧑  作者: Mango

计算二叉树中叶节点的程序
简介

在二叉树中,叶节点是指没有子节点的节点。本程序的目的是计算二叉树中叶节点的个数。

如何编写

本程序使用递归算法来计算二叉树中叶节点的数量。具体算法如下:

  1. 如果当前节点为空,则返回0。
  2. 如果当前节点是叶节点,则返回1。
  3. 否则,递归计算左子树的叶子节点数量和右子树的叶子节点数量,将二者相加并返回。

下面是使用Python语言实现的代码:

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)
使用示例

假设有以下二叉树:

    1
   / \
  2   3
     / \
    4   5

可以使用如下代码计算该二叉树中的叶子节点数量:

root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.right.left = Node(4)
root.right.right = Node(5)

count = count_leaves(root)
print("Leaves count:", count)  # 输出:Leaves count: 2
总结

计算二叉树中叶节点数量的程序使用递归算法实现。使用递归可以简化代码实现过程,提高代码的可读性。给定一个二叉树,本程序可以在$O(n)$时间复杂度内计算出其中叶节点的个数。