面试题68 - I. 二叉搜索树的最近公共祖先
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
递归:
class Solution {
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if (root == null) return null;
//当p与q的值都小于root的值,则p,q都在root的左边
if (p.val < root.val && q.val < root.val) return lowestCommonAncestor(root.left, p, q);
//当p与q的值都大于root的值,则p,q都在root的右边
if (p.val > root.val && q.val > root.val) return lowestCommonAncestor(root.right, p, q);
//否则返回root
return root;
}
}