完全二叉树的节点个数
class Solution {
public:
int countNodes(TreeNode* root) {
if(root==NULL) return 0;
return 1+countNodes(root->left)+countNodes(root->right);
}
};
递归,遍历一遍二叉树
平衡二叉树
class Solution {
public:
int getNUM(TreeNode* cur){
if(!cur) return 0;
int leftNUM=getNUM(cur->left);
if(leftNUM==-1) return -1;
int rightNUM=getNUM(cur->right);
if(rightNUM==-1) return -1;
return abs(leftNUM-rightNUM)>1?-1:1+max(leftNUM,rightNUM);
}
bool isBalanced(TreeNode* root) {
return getNUM(root)==-1?false:true;
}
};