解题思路:
利用二叉搜索树的性质,左子树小,右子树大,最近公共祖父一定居于两数之间
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
TreeNode re=null;
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
lca(root,p,q);
return re;
}
public void lca(TreeNode root,TreeNode p,TreeNode q){
if((root.val-p.val)*(root.val-q.val)<=0)
re=root;
else if(root.val>p.val && root.val>q.val)
lca(root.left,p,q);
else
lca(root.right,p,q);
}
}