decide whether to process the current node now (pre-order),
or between processing two children (in-order)
or after processing both children (post-order)
make two recursive calls for both the children of the current node to process them.
root and at every step, make two recursive calls one for the root.left and one for the root.right child by subtracting the value of the current node from the given number: sum - root.val.O(n)O(n)