刚来牛客刷题,刷了几题都看到代码模板中的提示称Class Solution的方法不能改,所以我就按照给定的方法写了个递归。主要是把树的深度存放在pRoot->val中。
class Solution {
public:
bool IsBalanced_Solution(TreeNode* pRoot) {
if(pRoot == NULL) return true;
bool leftIsB = IsBalanced_Solution(pRoot->left);
bool rightIsB = IsBalanced_Solution(pRoot->right);
int leftD = pRoot->left == NULL? 0: pRoot->left->val;
int rightD = pRoot->right == NULL? 0: pRoot->right->val;
if(leftIsB==false || leftIsB==false || abs(leftD-rightD)>1)
return false;
else{
pRoot->val = leftD > rightD ? leftD + 1 : rightD + 1;
return true;
}
}
};
京公网安备 11010502036488号