首页 > 其他分享 >二叉搜索树的最近公共祖先

二叉搜索树的最近公共祖先

时间:2022-10-20 17:15:34浏览次数:48  
标签:lowestCommonAncestor TreeNode val 祖先 二叉 搜索 && return root

一. 递归

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

 

二. 非递归

public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        while(root != null) {
            if(root.val < p.val && root.val < q.val) // p,q 都在 root 的右子树中
                root = root.right; // 遍历至右子节点
            else if(root.val > p.val && root.val > q.val) // p,q 都在 root 的左子树中
                root = root.left; // 遍历至左子节点
            else break;
        }
        return root;
    }

 

标签:lowestCommonAncestor,TreeNode,val,祖先,二叉,搜索,&&,return,root
From: https://www.cnblogs.com/shijianchuzhenzhi/p/16810509.html

相关文章

  • 颜色二叉树
    颜色二叉树一棵节点带颜色的二叉树,每个节点除了有id值,还有一个颜色变量color。每个节点的id值不同。TreeNode类定义:classTreeNode{TreeNodeleft;TreeNoderight......
  • 做题记录整理图论/最短路/dp/记忆化搜索 P3953 [NOIP2017 提高组] 逛公园(2022/10/19)
    P3953[NOIP2017提高组]逛公园https://122720.blog.luogu.org/p3953-ti-xie-ji-yi-hua-sou-suo大佬讲得挺好的,我就不写了#include<bits/stdc++.h>#definefor1(i,a,b......
  • Elasticsearch 如何实现类主流搜索引擎广告置顶显示效果?
    1、需求私信问题:Elasticsearch如何实现类似百度广告置顶显示给定商品数据的效果?置顶显示某特定数据就是:搜索某关键词,出现关联广告置顶显示的效果。举例:百度搜索“电动汽车......
  • Elasticsearch 搜索工程师笔试面试,请先看这 10 条建议!
    Elasticsearch最少必要知识实战教程直播回放1、今年xing式不好,不要裸辞!!要做好万全准备再提离职,拿到offer再离职也无可厚非!!已经有很多球友后悔上半年裸辞了。裸辞一时......
  • sys.path和模块搜索路径
    当我们导入某个模块文件时,python解释器去哪里找这个文件呢?只有找到这个文件才能读取、装载运行该模块文件。它一般按照如下路径寻找模块文件(按照顺序寻找,找到即停不继续往下......
  • 全局平衡二叉树
    全局平衡二叉树,其实说白了就是在树链剖分的基础上再次对每条链以相对平衡的方法再次重构成一颗固态的二叉树的形态,或者说在LCT的基础上把Splay换成满足全局平衡的二叉......
  • Elasticsearch 搜索 API
    Elasticsearch搜索API目录Elasticsearch搜索API搜索多个索引搜索单个索引只返回特定字段统计文档数量查询索引配置修改索引Mapping参阅搜索多个索引#未指定文档时......
  • 学习(二叉树中序遍历)
    1、108、将有序数组转换为二叉搜索树(重点)structTreeNode*helper(int*nums,intleft,intright){//用一个有序数组来建一个名叫helper的二叉树if(left>righ......
  • 关于Azure-portal-虚拟机界面通过Private IP address-无法搜索到虚拟机的解决方法
    因Azure管理的机器越来越多了,今天需要去查看一台虚拟机的信息及做一些操作于是笔者登录到Azure-portal,进入到Virtualmachines界面,通过要处理的机器的内网私有IP地址,尽然......
  • LeetCode 144 94 145 关于前中后序遍历二叉树的思考(包含迭代法)
    用系统堆栈实现(递归)很容易实现:前序:do(),递归左儿子,递归右儿子中序:递归左儿子,do(),递归右儿子后序:递归左儿子,递归右儿子,do()用自定义栈实现(迭代法)首先首......