
									 Problem
								
								
									 Solution
								
								
									 Submissions
								
								
							Path Sum II
								Certification: Intermediate Level
								Accuracy: 0%
								Submissions: 0
								Points: 10
							
							Write a C program to find all root-to-leaf paths in a binary tree where each path's sum equals a given target sum. A leaf is a node with no children. Return all the valid paths as a list of lists, where each inner list represents one valid path from root to leaf.
Example 1
- Input: root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
- Output: [[5,4,11,2],[5,8,4,5]]
- Explanation: - Path 1: 5 -> 4 -> 11 -> 2, Sum = 5+4+11+2 = 22. 
- Path 2: 5 -> 8 -> 4 -> 5, Sum = 5+8+4+5 = 22. 
- Both paths sum to the target value 22. 
- These are the only two valid root-to-leaf paths.
 
- Path 1: 5 -> 4 -> 11 -> 2, Sum = 5+4+11+2 = 22. 
Example 2
- Input: root = [1,2,3], targetSum = 5
- Output: []
- Explanation: - Path 1: 1 -> 2, Sum = 1+2 = 3 (not equal to 5). 
- Path 2: 1 -> 3, Sum = 1+3 = 4 (not equal to 5). 
- No path sums to the target value 5. 
- Therefore, return empty result.
 
- Path 1: 1 -> 2, Sum = 1+2 = 3 (not equal to 5). 
Constraints
- The number of nodes in the tree is in the range [0, 5000]
- -1000 ≤ Node.val ≤ 1000
- -1000 ≤ targetSum ≤ 1000
- Time Complexity: O(n^2) where n is number of nodes
- Space Complexity: O(n) for recursion stack
Editorial
									
												
My Submissions
										All Solutions
									| Lang | Status | Date | Code | 
|---|---|---|---|
| You do not have any submissions for this problem. | |||
| User | Lang | Status | Date | Code | 
|---|---|---|---|---|
| No submissions found. | ||||
Solution Hints
- Use depth-first search (DFS) to traverse all paths from root to leaves
- Maintain a current path array to track the nodes in the current path
- Keep track of the current sum as you traverse down the tree
- When you reach a leaf node, check if the current sum equals target sum
- If the sum matches, add a copy of the current path to the result
- Use backtracking to remove the current node when returning from recursion
