Path Sum (Binary Tree)

Data Structures
Easy
Google
111.3K views

Given the root of a binary tree and an integer `targetSum`, return true if the tree has a root-to-leaf path such that adding up all the values along the path equals `targetSum`.

Why Interviewers Ask This

Google interviewers ask the Path Sum problem to evaluate a candidate's mastery of recursive thinking and tree traversal fundamentals. This question specifically tests the ability to maintain state across recursion levels without using global variables, ensuring candidates can handle backtracking logic cleanly while managing edge cases like null nodes or negative integers effectively.

How to Answer This Question

1. Clarify requirements immediately by asking if the tree contains only positive integers, as this impacts optimization strategies for early pruning. 2. Propose a Depth-First Search (DFS) approach using recursion, explicitly stating that you will pass the remaining target sum down each branch rather than accumulating a total from the root. 3. Define your base cases clearly: return true if you reach a leaf node where the remaining sum matches the node's value, and false if the node is null. 4. Implement the recursive step by subtracting the current node's value from the target and calling the function on both left and right children, returning true if either path succeeds. 5. Discuss time complexity as O(N) since you may visit every node, and space complexity as O(H) for the call stack, where H is the tree height, explaining how balanced versus skewed trees affect performance.

Key Points to Cover

  • Explicitly handling the distinction between internal nodes and leaf nodes
  • Passing the 'remaining sum' down the recursion instead of accumulating a total
  • Correctly identifying base cases for null nodes and leaf nodes
  • Analyzing space complexity based on tree height rather than just N
  • Demonstrating clean code structure without relying on global variables

Sample Answer

To solve the Path Sum problem efficiently, I would use a recursive Depth-First Search strategy. First, I'd clarify with the interviewer if the tree values are strictly positive, which could allow for early termination if the running sum exceeds the target. Assuming general integer inputs, my approach involves traversing from the root to every leaf, tracking the cumulative sum along the path. I will define a helper function that takes the current node and the remaining target sum. The logic flows as follows: if the current node is null, we return false immediately since no path exists here. If the node is a leaf, meaning it has no children, we check if the node's value exactly equals the remaining target sum. If they match, we have found our valid path and return true. For non-leaf nodes, we subtract the current node's value from the target sum and recursively check both the left and right subtrees. The function returns true if either the left or right recursive call finds a valid path. This naturally handles the backtracking required to explore all possibilities. In terms of complexity, this runs in O(N) time because in the worst case, we visit every node once. The space complexity is O(H), representing the maximum depth of the recursion stack, which is optimal for this traversal pattern. This solution is clean, avoids global state, and aligns well with Google's emphasis on efficient, readable algorithms.

Common Mistakes to Avoid

  • Treating any node with matching sum as a success without verifying it is actually a leaf
  • Using global variables to track the current path sum instead of passing arguments
  • Failing to handle the edge case where the input tree root is null
  • Incorrectly implementing the logic to combine results from left and right subtrees

Practice This Question with AI

Answer this question orally or via text and get instant AI-powered feedback on your response quality, structure, and delivery.

Start Practicing

Related Interview Questions

Browse all 154 Data Structures questionsBrowse all 87 Google questions