Skip to content

235.二叉搜索树的最近公共祖先

题解

js
/**
 * @param {TreeNode} root
 * @param {TreeNode} p
 * @param {TreeNode} q
 * @return {TreeNode}
 */
var lowestCommonAncestor = function (root, p, q) {
  // 如果当前值比 p 和 q都大  往左搜索
  if (root.val > p.val && root.val > q.val) {
    return lowestCommonAncestor(root.left, p, q);

    // 如果当前值比 p 和 q都小  往右搜索
  } else if (root.val < p.val && root.val < q.val) {
    return lowestCommonAncestor(root.right, p, q);

    // 说明有相等的情况 直接返回root
  } else {
    return root;
  }
};
/**
 * @param {TreeNode} root
 * @param {TreeNode} p
 * @param {TreeNode} q
 * @return {TreeNode}
 */
var lowestCommonAncestor = function (root, p, q) {
  // 如果当前值比 p 和 q都大  往左搜索
  if (root.val > p.val && root.val > q.val) {
    return lowestCommonAncestor(root.left, p, q);

    // 如果当前值比 p 和 q都小  往右搜索
  } else if (root.val < p.val && root.val < q.val) {
    return lowestCommonAncestor(root.right, p, q);

    // 说明有相等的情况 直接返回root
  } else {
    return root;
  }
};