![]() |
VOOZH | about |
Welcome to the daily solutions of our . We will discuss the entire problem step-by-step and work towards developing an optimized solution. This will not only help you brush up on your concepts of Binary Trees but will also help you build up problem-solving skills.
Given a binary tree and an integer K. Find the number of paths in the tree which have their sum equal to K. A path may start from any node and end at any node in the downward direction. Since the answer may be very large, compute it modulo 109+7.
Examples:
Input: k = 5
Root of below binary tree:
1
/ \
3 -1
/ \ / \
2 1 4 5
/ / \ \
1 1 2 6Output: No of paths with sum equals to 5 are: 8
3 2
3 1 1
1 3 1
4 1
1 -1 4 1
-1 4 2
5
1 -1 5Input: k = 3
1
/ \
2 -1
/ \ /
1 2 3
/ \
2 5Output: No of paths with sum equals to 3 are : 4
The idea is to use a recursive approach and an unordered map to track running sums. The count is increased when the running sum matches 'k', and it also considers previously encountered sums from the map. The program then explores left and right subtrees, updating the map accordingly.
Step by Step approach:
Below is the implementation of the above approach:
Time Complexity: O(N), where N is the number of nodes in the tree
Auxiliary Space: O(N), where N is the number of nodes in the tree