For each node, compute two values: rob[v] = max money if you rob v, and skip[v] = max money if you skip v.
Transitions: rob[v]=v.val+skip[left]+skip[right], and skip[v]=max(rob[left],skip[left])+max(rob[right],skip[right]).
Answer: max(rob[root],skip[root]).