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) { TreeNode left = isEqual(root.left, o1, o2); TreeNode right = isEqual(root.right, o1, o2); if(left!=null && right!=null) return root.val; if(left!=null && right==null) return left.val; if(right!=null && left==null) return right.val;

	return -1;
}

public TreeNode isEqual(TreeNode root,int o1,int o2) {
	if(root == null) return null;
	
	if(root.val==o1 || root.val==o2) return root;
	
	TreeNode left = isEqual(root.left, o1, o2);
	TreeNode right = isEqual(root.right, o1, o2);
	
	if(left!=null && right!=null) return root;
    if(left!=null && right==null) return left;
    if(right!=null && left==null) return right;
	
	return null;
}

}