**Objective: –** Given a binary tree and X, write an algorithm to Print all the paths starting from root so that sum of all the nodes in path equals to a given number.

**Example:**

**Approach: **

- Create a global variable as String =
**path**. - Do the
*preorder* - if
, return.*root is greater than Sum required* - If not then, add root to the path and update the required sum (
).*sum=sum-root.data* - if
, means we have found the path, print it.*sum required =0* - See the code for better understanding.

**Code:**

**Output**:

1 2 7 1 3 6

By doing the preorder traversal, on the left branch all of the 1, 2, 7 and 5 nodes will be added; is that a valid scenario? Since I’m asking I guess that is not a valid path.

The solution also does not catch the scenario where sum = 12. In that context, the path would consist only of nodes 2, 1, 3 and 6. I’d guess that is a valid path in the tree, right?

Thanks Eugen. It was a solution for some other problem. I have updated the post. Do let me know if you find issues in other posts.