class Solution {
fun isBalanced(root: TreeNode?): Boolean {
return height(root) != -1
}
private fun height(node: TreeNode?): Int {
if (node == null) return 0
val left = height(node.left)
val right = height(node.right)
if (left == -1 || right == -1 || kotlin.math.abs(left - right) > 1) return -1
return maxOf(left, right) + 1
}
}