利用上一题求树深度的函数
class Solution {
public:
bool IsBalanced_Solution(TreeNode* pRoot) {
if(pRoot==nullptr) return true;
if(TreeDepth(pRoot->left)-TreeDepth(pRoot->right)>1 || TreeDepth(pRoot->left)-TreeDepth(pRoot->right)<-1) return false;
return IsBalanced_Solution(pRoot->left) && IsBalanced_Solution(pRoot->right) ;
}
int TreeDepth(TreeNode* pRoot)
{
if(pRoot==nullptr) return 0;
queue<TreeNode> q;
q.push(pRoot);
int level=0;
int current = 1, nextlevelnum=0;
while(!q.empty()){
TreeNode
tmp = q.front();
q.pop();
current--;
if(tmp->left!=nullptr) {
q.push(tmp->left);
nextlevelnum ++;
}
if(tmp->right!=nullptr){
q.push(tmp->right);
nextlevelnum ++;
}
if(current==0){
level ++;
current = nextlevelnum;
nextlevelnum = 0;
}
}
return level;
}
};