满二叉树叶节点数

Number of leaf nodes in full binary tree

问题求一棵有n个节点的满二叉树的叶节点个数。

我针对上述问题编写了一个递归程序,遍历树并在到达没有子节点的节点时增加叶节点的数量。但是由于树是一棵完整的二叉树,我认为这会使问题变得更容易,但我不知道如何解决。能否以紧凑的形式(类似于公式)减少它。

n个节点的满二叉树的叶节点数等于(n+1)/2。

Refrence 到上面的公式。

您从 1 个叶节点开始,每个分支步骤创建 2 个新叶节点,一个叶节点变成一个内部节点(对于树中 +1 个叶节点的网络)。所以这棵树有2b+1个节点,b个内部节点,b+1个叶子,其中b是分枝数。

n = 2b+1

b = (n-1)/2