A binary tree is height-balanced if, at every node, the heights of the left and right subtrees differ by at most 1. Implement is_balanced(root) in O(n): compute heights bottom-up and stop early (return a sentinel like -1) as soon as an imbalance is found.