校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > UI专业知识 > 色彩
题目

若平衡二叉树的高度为6,且所有非叶结点的平衡因子均为 1,则该平衡二叉树的结点总数为( )。 

A.12

B.20

C.32

D.33

解答

正确答案是 B

最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1
或者说深度为n的平衡二叉树,至少有F(n)个结点。
Fibonacci(斐波那契)数列,1是根节点,F(n-1)是左子树的节点数量,F(n-2)是右子树的节点数量。注意:F(0)=0,F(1)=1。
得知平衡二叉树的最少的结点的个数为15。而对于二叉树的最多的结点的个数是i2^h-1=31. 
因而用排除法,得知是20
C 4条回复 评论
我是一只粽子啊

太给力了 醍醐灌顶

发表于 2021-09-10 09:25:00
0 0
虹猫

平衡二叉树:深度为h

最小结点数(即最小平衡二叉树的结点数):f(h)=f(h-1)+f(h-2)+1。其中f(0)=0,f(1)=1。1表示根节点,f(h-1)表示左子树的节点数量,f(h-2)表示右子树的结点数量

最大结点数 2^h-1

发表于 2018-11-01 15:44:10
0 0
王王王

f(n) = f(n-1)+f(n-2)+1 = F(n+2)-1 ;其中F(n) 为斐波拉契数列

发表于 2018-11-01 15:43:46
0 0
小茉莉

除叶节点外平衡因子都为1,说明左子树都比右子树高度多1,也就是说,是左子树撑起了该局部根节点的高度,所以可以按照这样的思路,自顶而下画这棵树:(节点标号是为了区分各个节点)
 
 
为了看着清楚些,我把各层子节点提出来了,最后只需要自底而上把整个树合并起来就行。

按照fib公式算也是可以的,需要注意有的书里高度是从0开始算,有的是从1开始算。

发表于 2018-11-01 15:43:31
0 0