今天做了一个在线编程题,
题目是:求一个一般二叉树(非二叉搜索树)的最近公共祖先。
题目是:求一个一般二叉树(非二叉搜索树)的最近公共祖先。
题目要求不能使用额外空间来存储节点。
与二叉搜索树不同的是,每个叶子节点的数值value是没有规律的,
这就没有办法用什么乘2除2来做了。
解法的思路是:
* 从根节点开始遍历,如果node1和node2分别在root的左子树和右子树中,
* 那么根节点就是node1和node2的最近公祖先。
* 如果node1和node2都在左子树/右子树中,则递归左子树/右子树,
* 直到找到他们的最近公共节点。
/**
*
*/
package dianer;
/**
* @author LilyLee
* @date 2017年3月22日
* @time 下午5:08:43
* @Version 1.0
* @email [email protected]
*
*/