力扣【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;
    }
}
相关推荐
qystca4 分钟前
【16届蓝桥杯寒假刷题营】第2期DAY4
数据结构·c++·算法·蓝桥杯·哈希
JNU freshman6 分钟前
线段树 算法
算法·蓝桥杯
英国翰思教育41 分钟前
留学毕业论文如何利用不同问题设计问卷
人工智能·深度学习·学习·算法·学习方法·论文笔记
人类群星闪耀时1 小时前
寻找两个正序数组的中位数:分治法与二分查找的结合
算法·leetcode
萌新小码农‍1 小时前
回顾:Maven的环境搭建
java·maven
এ旧栎1 小时前
蓝桥与力扣刷题(240 搜索二维矩阵||)
算法·leetcode·矩阵·学习方法
Xzh04231 小时前
c语言网 1127 尼科彻斯定理
数据结构·c++·算法
gentle_ice2 小时前
leetcode——删除链表的倒数第N个节点(java)
java·leetcode·链表
wanghao6664553 小时前
Java基础面试题总结(题目来源JavaGuide)
java·开发语言
qystca3 小时前
【16届蓝桥杯寒假刷题营】第2期DAY5
c++·算法·蓝桥杯·贡献度