二叉树的性质
性质1:对于任何一棵二叉树T,其度为2的节点数加一等于度为0的叶子节点数
n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1
其中: n 0 n_0 n0表示度为0的节点数,也即叶子节点 n 2 n_2 n2表示度为2的节点数
性质2:深度为k的二叉树最多有 2 k − 1 2^k-1 2k−1个节点,最少有 k k k个节点
k ≤ n ≤ 2 k − 1 k\le n \le 2^k -1 k≤n≤2k−1
性质3:二叉树的第 k k k层最多有 2 k − 1 2^{k-1} 2k−1个节点,最少有1个节点
1 ≤ n k 层 ≤ 2 k − 1 1\le n_{k层} \le 2^{k -1} 1≤nk层≤2k−1
性质4:具有n个节点的完全二叉树的深度 k = ⌊ l o g 2 n ⌋ + 1 k = \lfloor log_2n \rfloor + 1 k=⌊log2n⌋+1
性质5:如果一个有 n n n个节点的完全二叉树,对其进行编号:从左至右,从上到下,记节点编号为i,则:
- 该树共有 ⌊ l o g 2 n ⌋ + 1 \lfloor log_2n \rfloor + 1 ⌊log2n⌋+1层
- 如果 i = 1 i= 1 i=1,则节点 i i i是二叉树的根,无双亲; 如果 i > 1 i > 1 i>1,则其双亲节点编号为 ⌊ i / 2 ⌋ \lfloor i/2 \rfloor ⌊i/2⌋
- 如果 2 i > n 2i > n 2i>n,则节点 i i i为叶节点,无左孩子,否则其左孩子编号为 2 i 2i 2i
- 如果 2 i + 1 > n 2i + 1 > n 2i+1>n,则节点 i i i无右孩子,否则右孩子编号为 2 i + 1 2i+1 2i+1
- 对于一个拥有左右孩子的节点 i i i,其左孩子编号为 2 i 2i 2i,右孩子编号为 2 i + 1 2i+1 2i+1