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

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

时间:2024-04-19 22:13:40浏览次数:24  
标签:val min int max 二叉 JZ68 搜索 root InOrder

image
image
image

class Solution {
public:
    //在哪分开,哪里就是公共祖先!
    //中序遍历二叉树
    TreeNode* ans;
    int lowestCommonAncestor(TreeNode* root, int p, int q) {
        // write code here
        int Min = min(p,q);
        int Max = max(p,q);
        InOrder(root, Min, Max);
        return ans->val; 
    }

    void InOrder(TreeNode* root, int min, int max)
    {
        //左根右
        if(min < root->val && max < root->val)	//如果都小于根节点,就往左走
        {
            InOrder(root->left, min, max);
        }
        else if(min <= root->val && max >= root->val)	//如果开始分叉就找到了想要的根节点!
        {
            ans = root;
        }
        else{
            InOrder(root->right, min, max);	//如果都大于根节点,就往右走
        }
              
    }
};

标签:val,min,int,max,二叉,JZ68,搜索,root,InOrder
From: https://www.cnblogs.com/H43724334/p/18146859

相关文章

  • Qt:获取QTableView中的数据,进行搜索
    1.创建QTableView内容QStandardItemModel*model=newQStandardItemModel(ui->tableView);//四列model->setHorizontalHeaderItem(0,newQStandardItem("1"));model->setHorizontalHeaderItem(1,newQStandardItem("Name"));model->set......
  • 手动给docusaurus添加一个搜索
    新版博客用docusaurus重构已经有些日子了,根据docusaurus的文档上也申请了Algolia,想一劳永逸的解决博客的搜索问题。但是流水有意,落花无情。algolia总是不给我回复,我只能对着algolia的申请页面仰天长叹。正常情况的申请按照docusaurus官方文档上说的,当我们需要搜索的时候,打开ht......
  • 树3-二叉树非递归遍历(栈)
    树3-二叉树非递归遍历(栈)拷贝根结点,初始值FALSE,入栈弹出,如果是FALSE,将根节点将更新为TRUE,其子结点(初始值FALSE)一并入栈[A,B,C](前序遍历,入栈顺序:C,B,A输出顺序:A,B,C)再弹出,如果是TRUE则输出引入链式栈头文件#include"linkedStack.h"链式栈头文......
  • JZ36二叉树排序树与双向链表
    /*structTreeNode{ intval; structTreeNode*left; structTreeNode*right; TreeNode(intx): val(x),left(NULL),right(NULL){ }};*/#include<cstddef>classSolution{public: TreeNode*ans=nullptr; //最终的链表 TreeNode*pre=nullptr; ......
  • 树1-二叉树概念与遍历方法
    树1:二叉树概念与遍历方法二叉树二叉树的遍历二叉树遍历分为前序,中序,后序.序是指遍历根结点的顺序D-data,根L左R右,先序遍历ABCDE-FGH中序遍历BDCE-A-FHG后序遍历DECB-HGF-A先序遍历ABDH-I-EJCFG中序遍历HDI-B-JEAFCG后序遍历HID-J......
  • 树2-二叉树拷贝, 遍历, 计算叶子结点和高度
    树2-二叉树拷贝,遍历,计算叶子结点和高度二叉树结点typedefstructBinaryNode{charch;structBinaryNode*lChild;structBinaryNode*rChild;}BinaryNode;//叶子结点的数量intsum;二叉树遍历前序//递归遍历(前序)voidRecursion(BinaryNode*roo......
  • 2024-04-17:用go语言,欢迎各位勇者莅临力扣城,本次的挑战游戏名为「力扣泡泡龙」。 游戏
    2024-04-17:用go语言,欢迎各位勇者莅临力扣城,本次的挑战游戏名为「力扣泡泡龙」。游戏的起点是一颗形状如二叉树的泡泡树,其中每个节点的值代表该泡泡的分值。勇者们有一次机会可以击破一个节点泡泡,但需要满足以下规则:被击破的节点泡泡最多只能有一个子节点泡泡。如果被击破的节点......
  • js 搜索查找算法
    线性查找线性查找是最简单的一种查找算法,它的基本思想是从头到尾遍历待查找的数据集,找到对应的元素,时间复杂度为O(n)。代码实现:functionlinearSearch(arr,target){for(leti=0;i<arr.length;i++){if(arr[i]===target){returni;......
  • 折半搜索
    折半搜索折半一般可以把时间复杂度从\(O(2^{n})\)变成\(O(2^{n/2}\cdotn)\)。一般可以从初始状态搜一次,从目标状态搜一次。伪代码voiddfs1(intx,/*其他的状态*/){ if(x==mid+1){ /* 统计发案数 */ } dfs1(x+1,/*选第x个东西的代价*/); dfs1(x+......
  • JZ27 二叉树的镜像
    /***structTreeNode{* intval;* structTreeNode*left;* structTreeNode*right;* TreeNode(intx):val(x),left(nullptr),right(nullptr){}*};*/classSolution{public:/***代码中的类名、方法名、参数名已经指定,请勿修改,直接返回......