面试题:完全二叉树699个节点,则叶子节点有多少个?
面试题:完全二叉树699个节点,则叶子节点有多少个?
怕记不住,先上结论:
假设一个二叉树有n个节点:
- 度为0的节点个数是n0
- 度为1的节点个数是n1
- 度为2的节点个数是n2
则有如下公式成立:
- n0 = n2 + 1 (1)
- n0 = (n +1) / 2 (2)(完全二叉树)
n = n0 + n1 +n2
因为 n0 = n2 + 1
所以 n = 2 * n0 + n1 - 1
因为是完全二叉树,所以 n1 只能等于0或1
所以 n = 2 * n0 - 1 或 n = 2 * n0
也就是n0 = (n + 1) / 2