You are given a binary tree in which each node contains an integer value.

Find the number of paths that sum to a given value.

The path does not need to start or end at the root or a leaf, but it must go downwards (traveling only from parent nodes to child nodes).

The tree has no more than 1,000 nodes and the values are in the range -1,000,000 to 1,000,000.


By keeping the prefix sum into Hash Map, we can count the number of path that the sum is inputted sum.

I think about below code.

This algorithm takes O(N) time.

Existence of the number(currSum - target) means that if the number remove, we can consider a path from the next node of the number.

Source Code