Find common ancestor in binary tree (no link to parent)

/**
 * FindCommonAncestor.java
 * 
 * Description: Design an algorithm and write code to find the first
common
 * ancestor of two nodes in a binary tree. Avoidstoring additional nodes
in a
 * data structure.NOTE: This is not necessarily a binary search tree.
 * 
 * @author John Qiao <qiaoshun8888@gmail.com> Date: Jan 26, 2014
 */