# LeetCode 104: Maximum Depth Of Binary Tree — Step-by-Step Visual Trace

**Easy** — Binary Tree | Depth-First Search | Recursion | Tree

## The Problem

Given the root of a binary tree, return its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

## Approach

This solution uses a recursive depth-first search approach. For each node, it recursively calculates the maximum depth of both left and right subtrees, then returns the maximum of these two depths plus one for the current node.

**Time:** O(n) · **Space:** O(h)

## Code

```python
class Solution:
    def maxDepth(self, root: TreeNode) -> int:
        if not root:
            return 0

        left_depth = self.maxDepth(root.left)
        right_depth = self.maxDepth(root.right)

        return max(left_depth, right_depth) + 1
```

## Watch It Run

> **[Open interactive visualization](https://tracelit.dev/app?trace=0104_maximum-depth-of-binary-tree)**

> **Try it yourself:** Open [TraceLit](https://tracelit.dev/app?trace=0104_maximum-depth-of-binary-tree) and step through every line.

---

*Built with [TraceLit](https://tracelit.dev) — the visual algorithm tracer for LeetCode practice.*
