算法描述
从根节点开始遍历,调用递归函数:1、若左右子树各包含一个指定节点,则返回根节点;2、若左子树包含两个节点则返回左节点;3若右节点包含两个节点,则返回右节点。
Java源码
public Node lowestCommonAcestor(Node root, Node node1, Node node2){
if(root == null) return null;
if(root == node1 || root == node2) return root;
Node left_res = lowestCommonAcestor(root.left, node1, node2);
Node right_res = lowestCommonAcestor(root.right, node1, node2);
if(left_res !=