若平衡二叉树的高度为6,且所有非叶结点的平衡因子均为 1,则该平衡二叉树的结点总数为( )。
A.12
B.20
C.32
D.33
正确答案是 B
太给力了 醍醐灌顶
平衡二叉树:深度为h
f(n) = f(n-1)+f(n-2)+1 = F(n+2)-1 ;其中F(n) 为斐波拉契数列
除叶节点外平衡因子都为1,说明左子树都比右子树高度多1,也就是说,是左子树撑起了该局部根节点的高度,所以可以按照这样的思路,自顶而下画这棵树:(节点标号是为了区分各个节点) 为了看着清楚些,我把各层子节点提出来了,最后只需要自底而上把整个树合并起来就行。按照fib公式算也是可以的,需要注意有的书里高度是从0开始算,有的是从1开始算。
请写出以下代码执行输出:(构造函数、静态块执行顺序)
cookies,sessionStorage 和 localStorage 的区别?
怎么理解产品经理与技术研发之间的关系?
ArrayList和LinkedList的区别,以及各自是怎么实现扩容的?
太给力了 醍醐灌顶
平衡二叉树:深度为h
f(n) = f(n-1)+f(n-2)+1 = F(n+2)-1 ;其中F(n) 为斐波拉契数列
除叶节点外平衡因子都为1,说明左子树都比右子树高度多1,也就是说,是左子树撑起了该局部根节点的高度,所以可以按照这样的思路,自顶而下画这棵树:(节点标号是为了区分各个节点)
为了看着清楚些,我把各层子节点提出来了,最后只需要自底而上把整个树合并起来就行。
按照fib公式算也是可以的,需要注意有的书里高度是从0开始算,有的是从1开始算。