力扣【235. 二叉搜索树的最近公共祖先】Java题解

题目链接

按照二叉搜索树的特性,我们只需要找到第一个"大于p小于q"或者"大于q小于p"的节点,或者等于p或等于q的节点即可。

当前节点大于p和q时,说明公共祖先在左子树。

当前节点小于p和q时,说明公共祖先在右子树。

csharp 复制代码
class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
         while(!((root.val > p.val && root.val <q.val)||(root.val < p.val && root.val >q.val) || root.val ==q.val ||root.val ==p.val)){
           if(root.val >p.val&&root.val >q.val) root = root.left;
           else if(root.val <p.val&&root.val <q.val) root = root.right;  
        }
        return root;
    }
}
相关推荐
白羊by9 分钟前
YOLOv1~v11 全版本核心演进总览
深度学习·算法·yolo
嗑嗑嗑瓜子的猫1 小时前
Java!它值得!
java·开发语言
墨尘笔尖2 小时前
最大最小值降采样算法的优化
c++·算法
2401_895521342 小时前
【Spring Security系列】Spring Security 过滤器详解与基于JDBC的认证实现
java·后端·spring
皮卡蛋炒饭.2 小时前
线程的概念和控制
java·开发语言·jvm
一只大袋鼠3 小时前
MyBatis 入门详细实战教程(一):从环境搭建到查询运行
java·开发语言·数据库·mysql·mybatis
程序员老邢3 小时前
【人生底稿・番外篇 05】我的电影江湖:从录像带时代,到港片陪伴的青春岁月
java·程序人生·职场发展·娱乐
sonnet-10293 小时前
函数式接口和方法引用
java·开发语言·笔记
Bat U3 小时前
JavaEE|多线程(二)
java·开发语言
_Evan_Yao3 小时前
RAG中的“Chunk”艺术:我试过10种切分策略后总结的结论
java·人工智能·后端·python·软件工程