recursive,simple
note the push order of different levels
iterative solution, use queue, test level by level
recursive solution, use two params