力扣【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;
    }
}
相关推荐
ghie909014 分钟前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体114 分钟前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk99814 分钟前
VSC优化算法MATLAB实现
开发语言·算法·matlab
wszy180943 分钟前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos
Z1Jxxx1 小时前
加密算法加密算法
开发语言·c++·算法
wszy18091 小时前
顶部标题栏的设计与实现:让用户知道自己在哪
java·python·react native·harmonyos
乌萨奇也要立志学C++1 小时前
【洛谷】递归初阶 三道经典递归算法题(汉诺塔 / 占卜 DIY/FBI 树)详解
数据结构·c++·算法
vyuvyucd1 小时前
C++引用:高效编程的别名利器
算法
程序员小假2 小时前
我们来说一下无锁队列 Disruptor 的原理
java·后端
鱼跃鹰飞2 小时前
Leetcode1891:割绳子
数据结构·算法