平衡二叉树中点的数量
平衡二叉树,又叫平衡二叉搜索树(Self-balancing binary search tree),其定义为:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
由定义可知,对于一棵高度为n的树,其点最少的情况为:左子树与右子树中,一者为高为n的最小平衡二叉树,另一者为高为n - 1的最小平衡二叉树,因此,对于高度为n的平衡二叉树,其最少点的数量为:F(n)=F(n-1)+F(n-2)+1,即左子树与右子树的点的数量的和,再加上根节点的1。递归的初始值为F(1) = 1, F(2) = 2。
而对于高度为n的平衡二叉树,点最大情况即为其为一棵满的二叉树的情况,即完美二叉树时(注意:不是完全二叉树,完全二叉树允许最后一行的点不满,但是需要位于左端),此时,点的数量为2 ^ n - 1。这里高度的定义方式为,最底层的高度为1,若最底层的高度为0的话,则n层的树的完美二叉树的点的数量为2 ^ (n + 1) - 1。