假设这是一颗满二叉树,n为节点的总个数,那么(n+1)/2为最后一层节点数,除以h-1次的2就是第一层的节点数即为1. 之所以选择满二叉树来算,是因为这样算起来最方便,最后一层节点数有多少并不影响整体的时间复杂度。
例如,如果是一颗高度为5的满二叉树,每层节点数如下:
1
2
4
8
16
那么整棵树的节点数为2^h-1=31, 最后一层节点数为(31+1)/2=16,因为有5层,所以要向上除以4次2,得到第一层的节点数目为1.即计算公式为
故得出下图结果。
假设这是一颗满二叉树,n为节点的总个数,那么(n+1)/2为最后一层节点数,除以h-1次的2就是第一层的节点数即为1. 之所以选择满二叉树来算,是因为这样算起来最方便,最后一层节点数有多少并不影响整体的时间复杂度。
例如,如果是一颗高度为5的满二叉树,每层节点数如下:
1
2
4
8
16
那么整棵树的节点数为2^h-1=31, 最后一层节点数为(31+1)/2=16,因为有5层,所以要向上除以4次2,得到第一层的节点数目为1.即计算公式为
故得出下图结果。