What does the "Path Sum Root to Leaf" problem ask you to find in a binary tree?
It asks whether there is a path from the root node down to any leaf node such that the sum of the node values along that path equals a given target sum.
Click to reveal answer
beginner
In the context of the Path Sum problem, what is a leaf node?
A leaf node is a node in the binary tree that has no children (no left or right child).
Click to reveal answer
intermediate
Why do we subtract the current node's value from the target sum as we go down the tree?
Subtracting the current node's value from the target sum helps track the remaining sum needed along the path to reach the target sum at a leaf node.
Click to reveal answer
intermediate
What is the base case for the recursive solution to the Path Sum problem?
The base case is when the current node is null (return false), or when the current node is a leaf and its value equals the remaining sum (return true).
Click to reveal answer
intermediate
How does the recursive function decide if a path with the target sum exists?
It recursively checks the left and right subtrees with the updated remaining sum. If either subtree returns true, it means a valid path exists.
Click to reveal answer
What should the function return if the current node is null in the Path Sum problem?
Atrue
Bthe target sum
Cfalse
Dthe current node's value
✗ Incorrect
If the node is null, there is no path, so return false.
When do we check if the current node's value equals the remaining sum?
AOnly at leaf nodes
BOnly at the root node
COnly at nodes with two children
DAt every node
✗ Incorrect
We check at leaf nodes because the path must end at a leaf.
What is the main technique used to solve the Path Sum problem?
ASorting
BDynamic programming
CBreadth-first search
DRecursion
✗ Incorrect
Recursion is used to explore all root-to-leaf paths.
If the target sum is 22 and the root node value is 5, what is the new target sum passed to the children?
A17
B22
C27
D5
✗ Incorrect
Subtract the current node value (5) from target sum (22) to get 17.
If either left or right subtree returns true for the path sum, what should the function return?
Afalse
Btrue
Cnull
Dthe sum of both subtrees
✗ Incorrect
If any subtree has a valid path, the answer is true.
Explain how you would use recursion to check if a binary tree has a root-to-leaf path with a given sum.
Think about what happens at each node and how the sum changes.
You got /4 concepts.
Describe the difference between a leaf node and other nodes in the context of the Path Sum problem.
Why do we care about leaf nodes specifically?
You got /3 concepts.
Practice
(1/5)
1. What does the "Path Sum Root to Leaf" problem ask you to find in a binary tree?
easy
A. If there exists a root-to-leaf path with a sum equal to a given target
B. The maximum depth of the binary tree
C. The total number of leaf nodes in the tree
D. The sum of all node values in the tree
Solution
Step 1: Understand the problem statement
The problem asks if any path from the root node down to any leaf node sums exactly to a given target value.
Step 2: Identify what is being checked
We check if such a path exists, not the maximum depth or total sum of all nodes.
Final Answer:
If there exists a root-to-leaf path with a sum equal to a given target -> Option A
Quick Check:
Path sum check = existence of target sum path [OK]
Hint: Focus on root-to-leaf paths and their sums [OK]
Common Mistakes:
Confusing total tree sum with path sum
Checking any path, not root-to-leaf
Looking for maximum depth instead
2. Which of the following Java method signatures correctly represents a function to check path sum in a binary tree node class?
easy
A. public void hasPathSum(TreeNode root, int targetSum)
B. public int hasPathSum(TreeNode root, int targetSum)
C. public String hasPathSum(TreeNode root, int targetSum)
D. public boolean hasPathSum(TreeNode root, int targetSum)
Solution
Step 1: Identify the return type for path sum check
The function should return true or false, so the return type must be boolean.
Step 2: Check method signature correctness
public boolean hasPathSum(TreeNode root, int targetSum) returns boolean and takes root node and target sum as parameters, matching the problem requirements.
Final Answer:
public boolean hasPathSum(TreeNode root, int targetSum) -> Option D
Quick Check:
Return type boolean for true/false check [OK]
Hint: Return boolean for yes/no path sum check [OK]
Common Mistakes:
Using int or void return type instead of boolean
Returning String instead of boolean
Incorrect parameter types
3. What will be the output of the following code snippet?
class TreeNode {
int val;
TreeNode left, right;
TreeNode(int val) { this.val = val; }
}
public class Solution {
public boolean hasPathSum(TreeNode root, int targetSum) {
if (root == null) return false;
if (root.left == null && root.right == null) return root.val == targetSum;
return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val);
}
public static void main(String[] args) {
TreeNode root = new TreeNode(5);
root.left = new TreeNode(4);
root.right = new TreeNode(8);
root.left.left = new TreeNode(11);
root.left.left.left = new TreeNode(7);
root.left.left.right = new TreeNode(2);
root.right.left = new TreeNode(13);
root.right.right = new TreeNode(4);
root.right.right.right = new TreeNode(1);
Solution sol = new Solution();
System.out.println(sol.hasPathSum(root, 22));
}
}
medium
A. true
B. false
C. Compilation error
D. Runtime exception
Solution
Step 1: Trace the path sums in the tree
Check if any root-to-leaf path sums to 22. One path is 5->4->11->2 = 22.
Step 2: Evaluate the recursive calls
The function returns true because the path sum 22 exists, so it prints true.
Final Answer:
true -> Option A
Quick Check:
Path 5+4+11+2 = 22 exists [OK]
Hint: Look for any root-to-leaf path matching target sum [OK]
Common Mistakes:
Ignoring leaf node condition
Subtracting sum incorrectly
Assuming sum must be from root to any node
4. Identify the bug in the following code for checking path sum and select the correct fix:
public boolean hasPathSum(TreeNode root, int targetSum) {
if (root == null) return false;
if (root.left == null && root.right == null) return root.val == targetSum;
return hasPathSum(root.left, targetSum) || hasPathSum(root.right, targetSum);
}
medium
A. Change return type to int
B. Subtract root.val from targetSum in recursive calls
C. Check only left subtree for path sum
D. Return true if root is null
Solution
Step 1: Analyze recursive call parameters
The code calls hasPathSum with the same targetSum without subtracting root.val, so it doesn't reduce the sum along the path.
Step 2: Correct the recursive calls
Subtract root.val from targetSum in recursive calls to track remaining sum needed.
Final Answer:
Subtract root.val from targetSum in recursive calls -> Option B
Quick Check:
Update targetSum by subtracting node value [OK]
Hint: Always reduce targetSum by current node's value [OK]
Common Mistakes:
Not subtracting node value in recursion
Returning true on null node
Ignoring right subtree
5. Given a binary tree where node values can be negative, zero, or positive, which modification is necessary to correctly check for a path sum equal to a target value?
hard
A. Check for path sums only in positive-valued nodes
B. Use a global variable to track sums instead of recursion
C. No modification needed; standard path sum check works for all values
D. Modify the function to handle negative sums by not stopping at leaf nodes
Solution
Step 1: Understand impact of negative values on path sum
Negative values do not affect the logic; the sum is still accumulated along the path.
Step 2: Confirm standard recursive approach works
The standard recursive subtraction and leaf check works regardless of node values being negative, zero, or positive.
Final Answer:
No modification needed; standard path sum check works for all values -> Option C
Quick Check:
Standard method handles all integer values [OK]
Hint: Standard recursion handles negative values fine [OK]
Common Mistakes:
Thinking negative values break the logic
Trying to skip negative nodes
Changing leaf node condition unnecessarily
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.