Given a Binary tree and a sum S, print all the paths, starting from root, that sums upto the given sum.
Note that this problem is different from root to leaf paths. Here path doesn’t need to end on a leaf node.
Input : Input : sum = 8, Root of tree 1 / \ 20 3 / \ 4 15 / \ / \ 6 7 8 9 Output : Path: 1 3 4 Input : sum = 38, Root of tree 10 / \ 28 13 / \ 14 15 / \ / \ 21 22 23 24 Output : Path found: 10 28 Path found: 10 13 15
For this problem, preorder traversal is best suited as we have to add up a key value as we land on that node.
We start from the root and start traversing by preorder traversal, adding key value to the sum_so_far and checking whether it is equal to the required sum.
Also, as tree node doesn’t have a pointer pointing to its parent, we have to explicitly save from where we have moved. We use a vector path to store the path for this.
Every node in this path contributes to the sum_so_far.
Path found: 10 28 Path found: 10 13 15
This article is contributed by Shubham Gupta. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Tree Traversals (Inorder, Preorder and Postorder)
- Find the node with minimum value in a Binary Search Tree
- Write a program to Calculate Size of a tree | Recursion
- Write a Program to Find the Maximum Depth or Height of a Tree
- Write a program to Delete a Tree
- If you are given two traversal sequences, can you construct the binary tree?
- Convert a Binary Tree into its Mirror Tree
- Given a binary tree, print out all of its root-to-leaf paths one per line.
- Lowest Common Ancestor in a Binary Search Tree.
- The Great Tree-List Recursion Problem.
- Check sum of Covered and Uncovered nodes of Binary Tree
- Level Order Tree Traversal
- Program to count leaf nodes in a binary tree
- A program to check if a binary tree is BST or not
- Check for Children Sum Property in a Binary Tree
Improved By : SHUBHAMSINGH10