import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ public class Solution { int LCA = -1; /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @param o1 int整型 * @param o2 int整型 * @return int整型 */ public int lowestCommonAncestor (TreeNode root, int o1, int o2) { // write code here findLCA(root,o1,o2); return LCA; } private int findLCA(TreeNode root, int o1, int o2) { // TODO if(root==null){ return 0; } int res = 0; if(root.val == o1){ res+=1; } if(root.val == o2){ res+=2; } int res1 = findLCA(root.left,o1,o2); int res2 = findLCA(root.right,o1,o2); if(res1==3||res2==3){ return 3; }else{ res = res + res1 + res2; if(res == 3 && LCA==-1){ LCA = root.val; } return res; } } }