14. Path Sum
easyAsked at CircleCIDetermine if a binary tree has a root-to-leaf path summing to a target, analogous to checking if a CI pipeline path meets a cost budget.
By Sam K., Founder, InterviewChamp.AI · Last verified
Problem
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.
Constraints
Number of nodes in [0, 5000]Node values in [-1000, 1000]targetSum in [-1000, 1000]
Examples
Example 1
root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22trueExample 2
root = [1,2,3], targetSum = 5falseApproaches
1. Brute force DFS
Recursively subtract node value from target and check if leaf with remainder 0 exists.
- Time
- O(n)
- Space
- O(h)
function hasPathSum(root, target) {
if (!root) return false;
if (!root.left && !root.right) return root.val === target;
return hasPathSum(root.left, target - root.val) ||
hasPathSum(root.right, target - root.val);
}Tradeoff:
2. Iterative DFS with stack
Push (node, remainingSum) pairs onto a stack, avoiding recursion overhead for deep trees.
- Time
- O(n)
- Space
- O(h)
function hasPathSum(root, target) {
if (!root) return false;
const stack = [[root, target]];
while (stack.length) {
const [node, rem] = stack.pop();
if (!node.left && !node.right && rem === node.val) return true;
if (node.right) stack.push([node.right, rem - node.val]);
if (node.left) stack.push([node.left, rem - node.val]);
}
return false;
}Tradeoff:
CircleCI-specific tips
CircleCI relates this to budget-constrained pipeline paths — be ready to extend the solution to return the actual path or count all valid paths.
Solve it now
Free. No sign-up. Python and JavaScript run instantly in your browser.
More CircleCI coding interview questions
- 1. Two Sum
- 2. Valid Parentheses
- 3. Merge Two Sorted Lists
- 4. Remove Duplicates from Sorted Array
- 5. Remove Element
- 6. Search Insert Position
- 7. Maximum Subarray
- 8. Plus One