剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
思路
因为是二叉搜索树,因此可以判断起来比较容易,节点只可能在左右子树
如果都小于根结点,那么就查看是否在左子树
如果都大于根结点,那么就查看是否在右子树
否则,直接返回根节点
代码
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if(p.val<root.val&&q.val<root.val){
return lowestCommonAncestor(root.left,p,q);
}
if(p.val>root.val&&q.val>root.val){
return lowestCommonAncestor(root.right,p,q);
}
return root;
}