Skip to main content

Command Palette

Search for a command to run...

Solving Leetcode Interviews in Seconds with AI: Maximum Depth of Binary Tree

Updated
2 min read

Introduction

In this blog post, we will explore how to solve the LeetCode problem "104" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like Chatmagic, we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

Problem Statement

Given the root of a binary tree, return its maximum depth. A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. Example 1: Input: root = [3,9,20,null,null,15,7] Output: 3 Example 2: Input: root = [1,null,2] Output: 2 Constraints: The number of nodes in the tree is in the range [0, 104]. -100 <= Node.val <= 100

Explanation

Here's the solution to find the maximum depth of a binary tree:

  • Recursive Depth-First Search: Traverse the tree using a recursive depth-first search (DFS) approach.
  • Calculate Depth at Each Node: At each node, calculate its depth as 1 plus the maximum depth of its left and right subtrees.
  • Base Case: If the node is None (empty), return 0.

  • Runtime Complexity: O(N), where N is the number of nodes in the tree.

  • Storage Complexity: O(H), where H is the height of the tree (worst case O(N), average case O(log N) for balanced trees) due to the recursion stack.

Code

    class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

def maxDepth(root: TreeNode) -> int:
    """
    Given the root of a binary tree, return its maximum depth.
    A binary tree's maximum depth is the number of nodes along the longest path
    from the root node down to the farthest leaf node.
    """
    if root is None:
        return 0
    else:
        left_depth = maxDepth(root.left)
        right_depth = maxDepth(root.right)
        return max(left_depth, right_depth) + 1

More from this blog

C

Chatmagic blog

2894 posts

Solving Leetcode Interviews in Seconds with AI: Maximum Depth of Binary Tree