美文网首页
剑指 Offer 第68-1题: 二叉搜索树的最近公共祖先

剑指 Offer 第68-1题: 二叉搜索树的最近公共祖先

作者: 放开那个BUG | 来源:发表于2022-08-12 17:03 被阅读0次

    1、前言

    题目描述

    2、思路

    二叉搜索树的最近公共祖先和二叉树的不一样,比二叉树的要简单一点。

    二叉搜索树的公共祖先有个特性,就是祖先的值一定在两个节点中间。所以 root 的值比 p、q 都大,那么说明 p、q 都在 root 的左子树;如果 root 的值比 p、q 都小,那么说明 p、q 都在 root 的右子树。否则,直接返回 root,它一定是最近公共祖先。

    3、代码

    class Solution {
         public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
            if(root.val > p.val && root.val > q.val){
                return lowestCommonAncestor(root.left, p, q);
            }
            if(root.val < p.val && root.val < q.val){
                return lowestCommonAncestor(root.right, p, q);
            }
            return root;
        }
    }
    

    相关文章

      网友评论

          本文标题:剑指 Offer 第68-1题: 二叉搜索树的最近公共祖先

          本文链接:https://www.haomeiwen.com/subject/rxobbrtx.html