Microsoft Interview Question
The value of each node is TRUE or FALSE.
The goal is to find the highest-level node that is TRUE.
So what you would do is access each sibling node recursively,
storing the children (if there is one) in a queue.
After accessing all siblings, proceed to pop nodes off the queue and search them recursively.
Breadth first traversal using a queue. First push the parent then its siblings in the queue and each time you pull a node out from the queue add its children to the end of the queue.
- Hemant March 07, 2006