var isBalanced = function (root) {
if (root == null) return true;
return Math.abs(maxDepth(root.left) - maxDepth(root.right)) <= 1 && isBalanced(root.left) && isBalanced(root.right);
function maxDepth(node) {
if (node == null) return 0;
let left = maxDepth(node.left);
let right = maxDepth(node.right);
return Math.max(left, right) + 1;
}
};
var isBalanced = function (root) {
return getHeight(root) !== -1;
};
function getHeight(root) {
if (root === null) return 0;
let leftHeight = getHeight(root.left);
if (leftHeight === -1) return -1;
let rightHeight = getHeight(root.right);
if (rightHeight === -1) return -1;
if (Math.abs(leftHeight - rightHeight) > 1) return -1;
return Math.max(leftHeight, rightHeight) + 1;
}