平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。
平衡二叉树定义:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
例如:
给定二叉树 [3,9,20,null,null,15,7]
int get(struct TreeNode* root) {
if (root == NULL) {
return 0;
}
int l = get(root->left);
int r = get(root->right);
return l > r ? l + 1 : r + 1;
}
bool isBalanced(struct TreeNode* root) {
if (root == NULL) {
return true;
}
int l = get(root->left);
int r = get(root->right);
int a = abs(l - r);
return a < 2 && isBalanced(root->left) && isBalanced(root->right);
}