Here I solve the Path Sum - LeetCode problem from LeetCode:
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.
Note: A leaf is a node with no children.
Example:
Given the below binary tree and
sum = 22
,
5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1
return true, as there exist a root-to-leaf path
5->4->11->2
which sum is 22.
The approach taken here is that we do a postorder traversal (because we’re looking for paths that end in leaves) As we go, we subtract the current node value from the path sum as we encounter new nodes. If the current node is a leaf node, and the path_sum
is 0, then we know that all the nodes on the way to the current add up to the orignial path_sum
before subtraction began.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|