Rob houses on a tree where adjacent nodes can't both be robbed. Each node returns (rob,skip): max money if robbed vs skipped. Example tree: root=3, left=2, right=3, left.right=3, right.right=1. Post-order builds answers bottom-up. At leaves: (value,0). At node 2 with child 3: rob=2+skipchild, skip=max(robchild,skipchild). So (2+0,3)=(2,3). At root 3: left=(2,3), right=(3,1). Rob=3+3+1=7. Skip=max(2,3)+max(3,1)=3+3=6.
Answer: max(7,6)=7.