力扣【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;
    }
}
相关推荐
开开心心就好4 分钟前
高效全能PDF工具,支持OCR识别
java·前端·python·pdf·ocr·maven·jetty
冷心笑看丽美人5 分钟前
Spring MVC数据绑定和响应 你了解多少?
java·spring·mvc
XQ丶YTY12 分钟前
大二java第一面小厂(挂)
java·开发语言·笔记·学习·面试
The_cute_cat18 分钟前
试除法判断素数优化【C语言】
算法
一零贰肆28 分钟前
深入理解SpringBoot中的SpringCache缓存技术
java·springboot·springcache·缓存技术
Darkwanderor36 分钟前
一般枚举题目合集
c++·算法
@我漫长的孤独流浪1 小时前
最短路与拓扑(2)
数据结构·c++·算法
码上飞扬1 小时前
Java大师成长计划之第22天:Spring Cloud微服务架构
java·运维·云计算
秋野酱1 小时前
基于javaweb的SpringBoot自习室预约系统设计与实现(源码+文档+部署讲解)
java·spring boot·后端