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;
}
}