1.先考虑根节点是最近的祖先 2. 左子树是最近的祖先 3. 右子树是最近的祖先 4. 单层条件是以上 ,然后递归就是额可以了 5. 注意基线条件

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param root TreeNode类 
     * @param o1 int整型 
     * @param o2 int整型 
     * @return int整型
     */
    public int lowestCommonAncestor (TreeNode root, int o1, int o2) {
        if(root == null){
            return 0;
        }
        // write code here
        if(o1==root.val || o2 == root.val){
             return root.val;
        }
        int left =  lowestCommonAncestor(root.left,o1,o2);
        int right =  lowestCommonAncestor(root.right,o1,o2);
        if(left == 0){
            return right;
        }
        if(right == 0){
            return left;
        }

         return root.val;
    }
}