1.什么是满二叉树?
- 高度为h,由2^h-1个节点构成的二叉树称为满二叉树。
所以,null空节点也是。
1.1.怎么判断满二叉树?
思路:基于递归
- 遍历寻找二叉树的最大深度。H(满二叉树,到叶子节点的数量相同均为H)
- 遍历过程中,记录节点数量。N。
如果2^H-1 == N,那么就是了,否则不是。
class Solutio{
int N;
public boolean jugeFullTree(TreeNode root){
空节点也是满二叉树
if (root==null) return true;
1.根节点 所以初始化是1
N=1;
2.递归计算H、N
int H=recur(root);
3.判断是否满足满二叉树的公式关系
return Math.pow(2,H)-1==N?true:false;
}
public int recur(TreeNode node){
if (node==null) return 0;
1. 累加节点数量
if (node.left!=null)
++N