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 {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @param p int整型
* @param q int整型
* @return int整型
*/
public int lowestCommonAncestor (TreeNode root, int p, int q) {
int c = root.val ;
int[] ch = new int[2] ;
if(p > q) {
ch[0] = q ;
ch[1] = p ;
} else {
ch[0] = p ;
ch[1] = q ;
}
if(c > ch[1]) {//根节点比表两个子节点都大,去左子树找
return lowestCommonAncestor(root.left , p , q) ;
} else if(c < ch[0]) {//根节点比表两个子节点都小,去右子树找
return lowestCommonAncestor(root.right ,p , q) ;
} else {//根节点就在中间,必定是最近祖先
return c ;
}
}
}