首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何找到BST中小于或等于给定值的节点数?(AVL树)

AVL树是一种自平衡的二叉搜索树,它的平衡性是通过节点的高度差来维护的。在AVL树中,每个节点都有一个平衡因子,即左子树的高度减去右子树的高度。平衡因子的绝对值不能超过1,否则就需要进行旋转操作来恢复平衡。

要找到AVL树中小于或等于给定值的节点数,可以按照以下步骤进行:

  1. 从根节点开始,比较给定值与当前节点的值。
  2. 如果给定值等于当前节点的值,那么当前节点及其左子树中的所有节点都小于或等于给定值,可以直接返回当前节点及其左子树的节点数。
  3. 如果给定值小于当前节点的值,那么需要在当前节点的左子树中继续查找。递归调用步骤1和步骤2。
  4. 如果给定值大于当前节点的值,那么需要在当前节点的右子树中继续查找。递归调用步骤1和步骤2。

以下是一个示例代码,用于实现上述算法:

代码语言:txt
复制
class Node:
    def __init__(self, value):
        self.value = value
        self.left = None
        self.right = None
        self.height = 1

class AVLTree:
    def __init__(self):
        self.root = None

    def insert(self, value):
        self.root = self._insert(self.root, value)

    def _insert(self, node, value):
        if not node:
            return Node(value)
        elif value < node.value:
            node.left = self._insert(node.left, value)
        else:
            node.right = self._insert(node.right, value)

        node.height = 1 + max(self._get_height(node.left), self._get_height(node.right))
        balance_factor = self._get_balance_factor(node)

        if balance_factor > 1:
            if value < node.left.value:
                return self._rotate_right(node)
            else:
                node.left = self._rotate_left(node.left)
                return self._rotate_right(node)
        elif balance_factor < -1:
            if value > node.right.value:
                return self._rotate_left(node)
            else:
                node.right = self._rotate_right(node.right)
                return self._rotate_left(node)

        return node

    def _get_height(self, node):
        if not node:
            return 0
        return node.height

    def _get_balance_factor(self, node):
        if not node:
            return 0
        return self._get_height(node.left) - self._get_height(node.right)

    def _rotate_left(self, z):
        y = z.right
        T2 = y.left

        y.left = z
        z.right = T2

        z.height = 1 + max(self._get_height(z.left), self._get_height(z.right))
        y.height = 1 + max(self._get_height(y.left), self._get_height(y.right))

        return y

    def _rotate_right(self, z):
        y = z.left
        T3 = y.right

        y.right = z
        z.left = T3

        z.height = 1 + max(self._get_height(z.left), self._get_height(z.right))
        y.height = 1 + max(self._get_height(y.left), self._get_height(y.right))

        return y

    def count_nodes_less_than_or_equal(self, value):
        return self._count_nodes_less_than_or_equal(self.root, value)

    def _count_nodes_less_than_or_equal(self, node, value):
        if not node:
            return 0
        elif value == node.value:
            return 1 + self._get_size(node.left)
        elif value < node.value:
            return self._count_nodes_less_than_or_equal(node.left, value)
        else:
            return 1 + self._get_size(node.left) + self._count_nodes_less_than_or_equal(node.right, value)

    def _get_size(self, node):
        if not node:
            return 0
        return 1 + self._get_size(node.left) + self._get_size(node.right)

在上述代码中,AVLTree类实现了AVL树的插入操作和计算小于或等于给定值的节点数的操作。count_nodes_less_than_or_equal方法接受一个值作为参数,并返回小于或等于该值的节点数。

这是一个基本的实现示例,你可以根据需要进行修改和扩展。对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,所以无法提供相关链接。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

数据结构–查找专题

记作:ST={a1,a2,…,an} ● 关键字: 可以标识一个记录的数据项 ● 主关键字: 可以唯一地标识一个记录的数据项 ● 次关键字: 可以识别若干记录的数据项 查找—-根据给定的某个关键字值,在查找表中确定一个其关键字等于给定值的记录或数据元素...设k为给定的一个关键字值,R[1..n]为n个记录的表,若存在R[i].key=k,1≤i≤n,称查找成功;否则称查找失败。...(1)分块表”按块有序”, 索引表”按key有序” (2)设n个记录分为b个块,每块的记录数s=n/b ● 查找方法 (1)顺序查找(或折半查找)索引表 确定k值所在的块号或块的首地址 (2)在某一块中顺序查找...结点的平衡因子:结点的左右子树的深度之差。 平衡二叉树:任意结点的平衡因子的绝对值小于等于1的二叉树。...树T中,并且返回调整后的AVL树 */ if ( !

48620

整理得吐血了,二叉树、红黑树、B&B+树超齐全,快速搞定数据结构

image 二叉查找树(Binary Search Tree - BST,又称二叉排序树、二叉搜索树) 二叉查找树根节点的值大于其左子树中任意一个节点的值,小于其右子树中任意一节点的值,且该规则适用于树中的每一个节点...AVL树的特点 具有二叉查找树的特点(左子树任一节点小于父节点,右子树任一节点大于父节点),任何一个节点的左子树与右子树都是平衡二叉树 任一节点的左右子树高度差小于1,即平衡因子为范围为[-1,1] 如上左图根节点平衡因子...Tree) 红黑树是一种自平衡二叉搜索树(BST),且红黑树节点遵循以下规则: 每个节点只能是红色或黑色 根节点总是黑色的 红色节点的父或子节点都必然是黑色的(两个红色的节点不会相连) 任一节点到其所有后代...m/2个子节点 节点的子节点数等于节点的key数加1 节点的所有key都按键值升序排序,两个键k1和k2之间的子key包含k1和k2范围内的所有键 与其他平衡二叉搜索树一样,搜索、插入和删除的时间复杂度为...具体的搜索步骤如下: 将搜索值与树中根节点的第一个key进行比较 匹配则显示“找到给定节点”并结束搜索,否则进入步骤3 检查搜索值是大于还是小于当前key值 搜索值小于当前key:左子树中获取第一个key

3.1K21
  • 二叉排序树:数据存储的艺术

    前言hello,大家好,我是 Lorin,今天给大家带来数据结构系列,二叉树中的一种特殊类型-二叉搜索树BST,又称二叉排序树或二叉查找树,比如我们我们常见的 AVL 树、B树、B+树都是BST的变种。...2、左子节点的值小于或等于父节点的值。右子节点的值大于父节点的值。3、对BST进行中序遍历,可以得到升序排列的节点值序列。...空间复杂度空间复杂度为O(n),其中n是BST的节点数量,主要是用于存储树结构本身。树操作插入从根节点开始,比较待插入的值与当前节点的值。若待插入的值小于当前节点的值,移至左子树;否则,移至右子树。...若待查找的值等于当前节点的值,返回当前节点;若小于当前节点的值,移至左子树;否则,移至右子树。重复以上步骤,直到找到目标值或者遇到空节点。删除先查找到待删除节点。...使用场景由于BST的不平衡性和对数据库分布敏感的原因,实际运用中并不会直接使用BST而是基于BST的变种平衡二叉搜索树(如AVL树、红黑树)或多叉树(如B树、B+树)等,运用于数据库索引、文件系统等场景

    24640

    Mysql的索引结构为什么要用B+数

    整理了一份328页MySQLPDF文档 一、二叉查找树(BST):不平衡 二叉查找树(BST,Binary Search Tree),也叫二叉排序树,在二叉树的基础上需要满足:任意节点的左子树上所有节点值不大于根节点的值...,任意节点的右子树上所有节点值不小于根节点的值。...因此,当总节点数量相同时,B树的高度远远小于AVL树和红黑树(B树是一颗“矮胖子”),磁盘IO次数大大减少。...**更适于范围查询:**在B树中进行范围查询时,首先找到要查找的下限,然后对B树进行中序遍历,直到找到查找的上限;而B+树的范围查询,只需要对链表进行遍历即可。...对于非叶节点,记录只包含索引的键和指向下一层节点的指针。假设每个非叶节点页面存储1000条记录,则每条记录大约占用16字节;当索引是整型或较短的字符串时,这个假设是合理的。

    1.1K30

    【深入学习MySQL】MySQL的索引结构为什么使用B+树?

    一、二叉查找树(BST):不平衡 二叉查找树(BST,Binary Search Tree),也叫二叉排序树,在二叉树的基础上需要满足:任意节点的左子树上所有节点值不大于根节点的值,任意节点的右子树上所有节点值不小于根节点的值...AVL实现平衡的关键在于旋转操作:插入和删除可能破坏二叉树的平衡,此时需要通过一次或多次树旋转来重新平衡这个树。...因此,当总节点数量相同时,B树的高度远远小于AVL树和红黑树(B树是一颗“矮胖子”),磁盘IO次数大大减少。...更适于范围查询:在B树中进行范围查询时,首先找到要查找的下限,然后对B树进行中序遍历,直到找到查找的上限;而B+树的范围查询,只需要对链表进行遍历即可。...对于非叶节点,记录只包含索引的键和指向下一层节点的指针。假设每个非叶节点页面存储1000条记录,则每条记录大约占用16字节;当索引是整型或较短的字符串时,这个假设是合理的。

    87520

    看动画学算法之:平衡二叉搜索树AVL Tree

    如果平衡因子=1,那么这棵树就是平衡二叉树AVL。 也就是是说AVL的平衡因子不能够大于1。 先看一个AVL的例子: 总结一下,AVL首先是一个二叉搜索树,然后又是一个二叉平衡树。...先看一个直观的例子,怎么在AVL中搜索到7这个节点: 搜索的基本步骤是: 从根节点15出发,比较根节点和搜索值的大小 如果搜索值小于节点值,那么递归搜索左侧树 如果搜索值大于节点值,那么递归搜索右侧树...,则继续搜索右边节点 return search(node.right, data); } AVL的插入 AVL的插入和BST的插入是一样的,不过插入之后有可能会导致树不再平衡...看一个直观的动画: 插入的逻辑是这样的: 从根节点出发,比较节点数据和要插入的数据 如果要插入的数据小于节点数据,则递归左子树插入 如果要插入的数据大于节点数据,则递归右子树插入 如果根节点为空,则插入当前数据作为根节点...普通BST节点删除 // 如果节点为空,直接返回 if (node == null) return node; // 如果值小于当前节点

    45740

    MySQL底层概述—6.索引原理

    二.完全二叉树高度为h、有n个结点的二叉树,当且仅当其每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树。三.二叉排序树左子树上所有结点的值均小于根结点的值。...(4)二叉查找树的查找二叉排序树的查找是从根结点开始,沿某个分支逐层向下比较的过程。若二叉排序树非空,先将给定值与根结点的值比较,如果相等,则查找成功。...}}(5)二叉查找树的插入二叉排序树的特点是树的结构通常不是一次生成的,而是在查找过程中,发现树中不存在结点值等于插入值的时候,再进行插入的。...插入的过程如下:若原二叉排序树为空,则直接插入结点,否则:若插入结点值小于根结点值,则插入到左子树;若插入结点值大于根结点值,则插入到右子树;插入的结点一定是一个新添加的叶结点,而且是查找失败时的查找路径上访问的最后一个结点的左孩子或右孩子...(3)一棵B+Tree可以存放多少数据一.B+树是如何存放的B+Tree的结点的大小等于一个数据页的大小(16K)。B+Tree的根结点保存在内存中,子结点才存储在磁盘上。

    9500

    数据结构与算法夺命连环17问

    2、BST树 二叉树的定义 二叉树是每个节点最多有两个子树的树结构。它有五种基本形态︰二叉树可以是空集;根可以有空的左子树或右子树﹔或者左、右子树皆为空。...3、BST树 定义∶二叉查找树(Binary Search Tree),又被称为二叉搜索树。设x为二叉查找树中的一个结点,x节点包含关键字key,节点x的key值记为keyx。...[82eeeb4e47c44a02a9ec8d6d15ab1eec~tplv-k3u1fbpfcp-zoom-1.image] 在二叉查找树中∶(01)若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值...(04)没有键值相等的节点 4、AVL树 AVL树是高度平衡的二叉搜索树,按照二叉搜索树(Binary Search Tree )的性质,AVL首先要满足︰· 若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值...AVL树的性质∶左子树和右子树的高度之差的绝对值不超过1树中的每个左子树和右子树都是AVL树每个节点都有一个平衡因子(balance factor-bf),任一节点的平衡因子是1,0,1之一(每个节点的平衡因子

    36120

    看动画学算法之:平衡二叉搜索树AVL Tree

    如果平衡因子=1,那么这棵树就是平衡二叉树AVL。 也就是是说AVL的平衡因子不能够大于1。 先看一个AVL的例子: 总结一下,AVL首先是一个二叉搜索树,然后又是一个二叉平衡树。...先看一个直观的例子,怎么在AVL中搜索到7这个节点: 搜索的基本步骤是: 从根节点15出发,比较根节点和搜索值的大小 如果搜索值小于节点值,那么递归搜索左侧树 如果搜索值大于节点值,那么递归搜索右侧树...,则继续搜索右边节点 return search(node.right, data); } AVL的插入 AVL的插入和BST的插入是一样的,不过插入之后有可能会导致树不再平衡,...看一个直观的动画: 插入的逻辑是这样的: 从根节点出发,比较节点数据和要插入的数据 如果要插入的数据小于节点数据,则递归左子树插入 如果要插入的数据大于节点数据,则递归右子树插入 如果根节点为空,则插入当前数据作为根节点...普通BST节点删除 // 如果节点为空,直接返回 if (node == null) return node; // 如果值小于当前节点

    26020

    文心一言 VS 讯飞星火 VS chatgpt (155)-- 算法导论12.3 2题

    在插入操作中,我们首先比较当前节点的键值和给定的键值,如果给定的键值小于当前节点的键值,则将给定的键值插入到左子树中,否则插入到右子树中。...如果给定的键值等于当前节点的键值,则直接将该节点插入到当前节点的位置。 在插入操作完成后,我们使用中序遍历的方式打印出了二叉树的结构。接着,我们使用search函数查找给定键是否存在于二叉树中。...让我们更详细地解释这个过程: 1.插入操作:当我们在BST中插入一个新元素时,我们从根节点开始,根据二叉搜索树的性质,我们比较当前节点的值与要插入的元素的值。...当我们向 BST 中插入一个新的关键字时,我们从根节点开始,沿着树进行搜索,直到找到合适的位置插入新节点。查找关键字的过程与插入过程非常相似。...现在,我们考虑一个具有 n+1 个节点的 BST,其中新插入的节点具有关键字 k。 a. 当我们向 BST 中插入关键字 k 时,我们需要沿着树进行搜索,直到找到合适的位置。

    19820

    树结构之二叉排序树、平衡二叉树、多路查找树

    创建和遍历 创建节点类, 定义相关属性构造方法以及ToSting()方法 编写BST的创建方法, 判断传入的节点是否为空 传入的节点的值小于当前节点, 插入到左子树(判断非空), 左子树递归调用创建节点的方法...AVL树 看一个案例(说明二叉排序树可能的问题) 给你一个数列{1,2,3,4,5,6},要求创建一个二叉排序树(BST), 并分析问题所在 ?...具有以下特点: 它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。...,需要多次进行i/o操作(海量数据存在数据库或文件中),节点海量,构建二叉树时,速度有影响 问题2:节点海量,也会造成二叉树的高度很大,会降低操作速度. ?...对于三节点的子树的值大小仍然遵守(BST 二叉排序树)的规则 下图是模拟2-3树创建的结构图 ? ? 除了23树,还有234树等,概念和23树类似,也是一种B树。

    75530

    三分钟基础知识:什么是 2-3 树?

    来源:五分钟学算法 作者:进击的HelloWorld 前面讲到了二叉搜索树 (BST) 和二叉平衡树 (AVL) :【漫画】以后在有面试官问你AVL树,你就把这篇文章扔给他。...但由于每次插入或删除节点后,都可能会破坏 AVL 的平衡,而要动态保证 AVL 的平衡需要很多操作,这些操作会影响整个数据结构的性能,除非是在树的结构变化特别少的情形下,否则 AVL 树平衡带来的搜索性能提升有可能还不足为了平衡树所带来的性能损耗...-3树,当前节点的数据的值要大于左子树中所有节点的数据,要小于右子树中所有节点的数据。...(3)对于 3- 节点,有两个数据域 a 和 b 和三个子节点指针,左子树中所有的节点数据要小于a,中子树中所有节点数据要大于 a 而小于 b ,右子树中所有节点数据要大于 b 。...img 2-3树插入 插入 在树的插入之前需要对带插入的节点进行一次查找操作,若树中已经有此节点则不予插入,若没有查找到此节点则记录未命中查找结束时访问的最后一个节点。

    71420

    数据结构与算法——2-3树

    前言 前面讲到了二叉搜索树 (BST) 和二叉平衡树 (AVL) ,二叉搜索树在最好的情况下搜索的时间复杂度为 O(logn) ,但如果插入节点时,插入元素序列本身就是有序的,那么BST树就退化成一个线性表了...但由于每次插入或删除节点后,都可能会破坏 AVL 的平衡,而要动态保证 AVL 的平衡需要很多操作,这些操作会影响整个数据结构的性能,除非是在树的结构变化特别少的情形下,否则 AVL 树平衡带来的搜索性能提升有可能还不足为了平衡树所带来的性能损耗...-3树,当前节点的数据的值要大于左子树中所有节点的数据,要小于右子树中所有节点的数据。...(3)对于 3- 节点,有两个数据域 a 和 b 和三个子节点指针,左子树中所有的节点数据要小于a,中子树中所有节点数据要大于 a 而小于 b ,右子树中所有节点数据要大于 b 。...img 2-3树插入 插入 在树的插入之前需要对带插入的节点进行一次查找操作,若树中已经有此节点则不予插入,若没有查找到此节点则记录未命中查找结束时访问的最后一个节点。

    66510

    各种树的区别

    二叉查找树,AVL树,B树,B+树,红黑树 二叉查找树 二叉查找树就是左结点小于根节点,右结点大于根节点的一种排序树,也叫二叉搜索树。也叫BST,英文Binary Sort Tree。...此时时间复杂度就变为味了O(N),为了解决这种情况,出现了二叉平衡树。 平衡二叉树 平衡二叉树全称平衡二叉搜索树,也叫AVL树。是一种自平衡的树。 AVL树也规定了左结点小于根节点,右结点大于根节点。...所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。 所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。...红黑树 红黑树也叫RB树,RB-Tree。是一种自平衡的二叉查找树,它的节点的颜色为红色和黑色。它不严格控制左、右子树高度或节点数之差小于等于1。也是一种解决二叉查找树极端情况的数据结构。...从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点 红黑树在查找方面和AVL树操作几乎相同。

    1K30

    二叉树

    由于结构不平衡,倾斜二叉树通常不适合高效的搜索、插入或删除操作。它们缺乏更平衡的树结构(例如 AVL 树或红黑树)的分支和平衡特性。 然而,倾斜二叉树可能会找到特定的应用程序或用例。...二叉搜索树 二叉搜索树 (BST) 是一种特定类型的二叉树,它遵循某些属性: 排序性质:在二叉搜索树中,对于每个节点,其左子树中的所有节点的值都小于其自身的值,而其右子树中的所有节点的值都大于其自身的值...通过保持平衡,AVL 树提供高效的搜索、插入和删除操作,时间复杂度为 O(log n),其中 n 是树中的节点数。...在循环中,我们将根据当前节点的值和所需的最小值来处理两种情况。 如果当前节点的值大于所需的最小值,我们将把最小值更新为当前节点的值,并移动到树的左分支。这是因为我们知道左子树中的数字将小于父节点。...如果遍历过程中找到的最小值不等于所需的数字,我们将返回这个最小值。但是,如果最小值等于所需的数字,我们将返回null。 return minValue !== number ?

    28330

    数据结构题目总结(C 语言描述)

    为树根指针的二叉搜索树上进行查找值为 Item 的结点的非递归算法 // 根据 item 的值和当前节点的比较,如果相等就找到返回,如果小于,当前节点移动到右孩子,否则移动找左孩子,重复上述过程。...删除表 L 中所有其值大于等于 min 小于等于max 的结点 void rangeDelete(LinkList & L, ElemType min, ElemType max){ // q...统计二叉树 T 中结点的个数 思路:一棵树的总结点数等于它的左子树上的结点数加上右子树上的节点数再加上其本身,空树的结点数为0,利用递归思想,求树 T 的总结点数 int CountNode (BiTree...T){ if (T == NULL) return 0; // 空树的结点数为 0 else // 非空树结点数等于它的左子树上的结点数加上右子树上的结点数再加上其本身...删除表中有值相同的多余元素并释放空间 TODO *算法判别给定表达式中开括号是否配对出现 TODO *给定二叉树 T 设计算法复制二叉树 T TODO *给图 G = (V, E) 和 G 中两个顶点

    3.2K30

    「数据结构与算法Javascript描述」二叉树

    在一些二叉树的实现中,左节点包含一组特定的值,右节点包含另一组特定的值。下图展示了一棵二叉树。 二叉树 当考虑某种特殊的二叉树,比如「二叉搜索树」时,确定子节点非常重要。...因为较小的值总是在左子节点上,在 BST 上查找最小值,只需要遍历左子树,直到找到最后一个节点。...== null) { current = current.right; } return current.data; } 2.3.2 查找给定值 在 BST 上查找给定值,需要比较该值和当前节点上的值的大小...BST存在一个问题:取决于你添加的节点数,树的一条边可能会非常深;也就是说,树的一条分支会有很多层,而其他的分支却只有几层,如下图所示: image-20220129120852646 这会在需要在某条边上添加...为了解决这个问题,有一种树叫作「阿德尔森-维尔斯和兰迪斯树」(AVL树)。AVL树是一种自「平衡二叉搜索树」,意思是任何一个节点左右两侧子树的高度之差最多为1。

    54720

    重学数据结构(六、树和二叉树)

    满二叉树的特点是每一层上的结点数都达到最大值, 即对给定的深度, 它是具有最多结点数的二叉树。 满二叉树不存在度数为 1 的结点, 每个分支结点均有两棵高度相同的子树, 且树叶都在最下一层上。...二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: 若左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; 左、右子树也分别为二叉排序树...二叉查找树的插入过程如下: 若当前的二叉查找树为空,则插入的元素为根节点; 若插入的元素值小于根节点值,则将元素插入到左子树中; 若插入的元素值不小于根节点值,则将元素插入到右子树中。...以图47中查找15为例: (1)获取根节点的关键字进行比较,当前根节点关键字为39,15找到指向左边的子节点(二分法规则,左小右大,左边放小于当前节点值的子节点、右边放大于当前节点值的子节点...8.1、查找 B+树的查找右两种方式: (1)从最小关键字起顺序查找; (2)从根节点开始,进行随机查找 在查找时,若非叶子节点上的关键字等于给定值,并不终止,而是继续向下直到叶子节点。

    81311

    第38期:BST 的搜索(小白必看)

    在上一节中,我们学习了二叉搜索树。那我们如何在二叉搜索树中查找一个元素呢?和普通的二叉树又有何不同?我们将在本节内容中进行学习! 下面我们仍然通过例题进行讲解。...01、题目分析 第700题:二叉搜索树中的搜索 给定二叉搜索树(BST)的根节点和一个值。你需要在 BST 中找到节点值等于给定值的节点。返回以该节点为根的子树。.../ \ 1 3 在上述示例中,如果要找的值是 5 ,但因为没有节点值为 5 ,我们应该返回 NULL 。...02、复习巩固 先复习一下,二叉搜索树(BST)的特性: 若它的左子树不为空,则所有左子树上的值均小于其根节点的值 若它的右子树不为空,则所有右子树上的值均大于其根节点得值 它的左右子树也分别为二叉搜索树...03、图解分析 假设目标值为 val,根据BST的特性,我们可以很容易想到查找过程 如果val小于当前结点的值,转向其左子树继续搜索; 如果val大于当前结点的值,转向其右子树继续搜索; 如果已找到,则返回当前结点

    53620
    领券