Base case: if node is null, return height .
Recursively compute left height and right height.
Diameter through this node = left height + right height. Update global max.
Return + max(left height, right height) as this node's height.
Time: , visiting each node once. Space: for recursion stack where is height. The recursion naturally handles the tree structure.