标题
给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。
class Solution {
int flag = 0;
int result = 0;
public int countNodes(TreeNode root) {
//如果为空,直接返回
if(root == null){
return result;
}
//这里可以不用判断,在此判断的目的就是为了让程序减少调用赋值代码,节省时间
// giveValue(root);
if(flag == 0){
giveValue(root);
flag = 1;
}
//通过节点的值是否为0,来判断此节点,是否已经加入到result中
if(root.val == 0){
result++;
root.val = 1;
}
//循环遍历
countNodes(root.left);
countNodes(root.right);
return result;
}
//对树节点的进行赋值
public void giveValue(TreeNode root){
if(root != null){
root.val = 0;
giveValue(root.left);
giveValue(root.right);
}
}
}