剑指 Offer 55 - II. 平衡二叉树 - 力扣(LeetCode) (leetcode-cn.com)
目录
解法
自底向上检查每一个节点,如果平衡,那么返回该节点的深度;如果不平衡,那么返回-1
运行结果
代码
#define unbalanced -1
class Solution {
public:
bool isBalanced(TreeNode* root) {
return ~check(root) ? true : false;
}
int check(TreeNode* root) {
if (root) {
int l = check(root->left);
int r = check(root->right);
int M = max(l, r), m = min(l, r);
return ~m && M - m < 2 ? M + 1 : unbalanced;
}
else return 0;
}
};