叶子节点有n个,求平衡二叉树的深度最多是多少?哪位大侠会,跟小弟说说啊。。
如题
叶子节点有n个,求平衡二叉树的深度最多是多少?
如何求解的??
谢谢了。。。
[解决办法]
一棵树的深度是左右两子树深度的最大值加一
[解决办法]
log2(n)+1=<h<=log2(n)+2
[解决办法]
这样问一下:
一颗x层的平衡二叉树,最少有多少个叶子结点呢?应该满足斐波那契数列:
f(x)=f(x-1)+f(x-2) 其中f(x)表示x层平衡二叉树最少的叶子个数
f(1)=1 f(2)=1 f(3)=2 f(4)=3 f(5)=5 f(6)=8 .....
层数 : 1 2 3 4 5 6 7 ...
最少叶子数: 1 1 2 3 5 8 13 ...
比如说:如果有3个叶子结点,我们最多能构造成一颗4层的平衡二叉树。
如果有5个叶子节点,我们最多可以构造成一颗5层的平衡二叉树。
如果有3<x<5个叶子结点,应该最多也只能构造成一颗4层的平衡二叉树。
所以,如果有n个叶子结点,我们可以通过估算一下n在斐波那契数列中所处的位置,就应该能知道最多构造几层的平衡二叉树。
[解决办法]
一个高度为n的二叉平衡树至少有多少个结点?
1.5log(n+1),实际上用斐波纳皆数列推出来的:1,2,4,7,12.即是FN = F(N-1) +F(N-2) +1
反推一下就出来了~~~