二叉树中的叶节点数

时间:2011-02-05 08:31:26

标签: data-structures tree binary-tree

我已经读过高度为h的树中叶子节点的数量至少是h + 1

但如图所示

http://i.stack.imgur.com/aDuho.png

树的高度为2,但叶节点的数量仅为2(至少)而不是3.我在哪里弄错了?

3 个答案:

答案 0 :(得分:3)

当且仅当您谈论完美的二叉树时,您所做的陈述才是真实的:

  

完美的二叉树是完整的二进制   所有树叶都在树上的树   相同的深度或相同的水平

答案 1 :(得分:1)

高度为h的树中叶子数量至少为h + 1的说法显然是错误的 - 只考虑长度为h的链表,其中只有一个叶节点。您阅读的来源不正确,或者是对树的结构做了一些额外的假设。

编辑:原始证据可能表示树中至少有h + 1个NULL指针。正如我们通过归纳所看到的那样,这种说法确实如此。作为基本情况,单节点树具有高度0并且具有两个空指针,因此声明适用于h = 0.对于归纳步​​骤,假设声明适用于所有高度为h的树。 < h并考虑任何高度为h的树。其子树中的一个必须具有高度h-1,并且归纳假设必须具有h个NULL指针。现在考虑另一个子树。如果没有其他子树,则根提供(h + 1)st NULL指针,我们就完成了。否则,对于k≥0,存在高度k的子树,因此通过归纳假设至少有(k + 1)≥1个NULL指针,因此树本身至少有h + 1个NULL指针,完成证明

答案 2 :(得分:0)

我知道这已经过时了,但万一有人遇到这里,要找到树叶: (n - 1) - (n / 2) 其中n =节点总数。在这种情况下,是(4-1) - (4/2)= 3-2 = 1