DEV Community

tracelit
tracelit

Posted on • Originally published at tracelit.dev

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

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
Enter fullscreen mode Exit fullscreen mode

Watch It Run

Watch the algorithm run step by step

Open interactive visualization

Try it yourself: Open TraceLit and step through every line.


Built with TraceLit — the visual algorithm tracer for LeetCode practice.

Top comments (0)