// 信息结构public static class Info{public int nodes;public int height;public Info(int nodes, int height) {this.nodes = nodes;this.height = height;}}// 判断public static Boolean isFullMain(Node head){if(head == null){return null;}Info info = isFull(head);return Math.pow(2, info.height)-1 == info.nodes;}public static Info isFull(Node head){if(head == null){return new Info(0, 0);}// 左树要信息 右树要信息Info leftReturn = isFull(head.left);Info rightReturn = isFull(head.right);// 自己也要弄信息int nodes = 0;int height = 0;// 自己也算一个 一层nodes = leftReturn.nodes + rightReturn.nodes + 1;height = Math.max(leftReturn.height , rightReturn.height)+1;return new Info(nodes,height);}
