def max_depth(node):
if not node:
return 0
left = max_depth(node.left)
right = max_depth(node.right)
return 1 + max(left, right)
Variables
n- number of nodes in the treeh- height of the tree
Explanation
Every node is visited exactly once, **O(n)** time. The recursion stack depth is the tree height **O(h)** - `log n` balanced, `n` degenerate.