LCR 176. 判断是否为平衡二叉树 - 力扣(LeetCode)
深度优先,递归到叶子节点,在返回时+1,判断左右子树的abs(left, right) < 2
class Solution {
public:
bool isBalanced(TreeNode* root) {
//终止条件
return recur(root) != -1;
}
int recur(TreeNode* root){
//终止条件
if(root == nullptr)
return 0;
//左子树
int left = recur(root->left);
if(left == -1) return -1;
//右子树
int right = recur(root->right);
if(right == -1) return -1;
//判断
return abs(left - right) < 2 ? max(left, right) + 1 : -1;
}
};