Leetcode700.二叉搜索树中搜索具体值

二叉搜索树的定义:

一颗空树或者具有以下性质的二叉树:

  1. 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;
  2. 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值;
  3. 任意节点的左、右子树也分别为二叉查找树;

二叉搜索树是平衡树吗?

二叉搜索树不一定是平衡树。

二叉搜索树的搜索时间复杂度是O(log n),关于时间复杂度,可以参考:平衡二叉搜索树查找的时间复杂度为什么是O(log n)?

根据二叉搜索树的定义,如果目标值比节点值大,则搜索右子树,如果目标值比节点值小,则搜索左子树。

核心还是递归。

java 复制代码
class Solution {
    public TreeNode searchBST(TreeNode root, int val) {
        if (root == null) {
            return null;
        }
        if (val == root.val) {
            return root;
        }
        /**
         * 例如:
         * 搜索3,3<4成立,则搜索2
         * 搜索6,6<4不成立 ,则搜索7
         */
        return searchBST(val < root.val ? root.left : root.right, val);
    }
}
相关推荐
闪电麦坤9515 小时前
数据结构:从前序遍历序列重建一棵二叉搜索树 (Generating from Preorder)
数据结构··二叉搜索树
闪电麦坤954 天前
数据结构:在二叉搜索树中插入元素(Insert in a BST)
数据结构·二叉树··二叉搜索树
KarrySmile20 天前
Day17--二叉树--654. 最大二叉树,617. 合并二叉树,700. 二叉搜索树中的搜索,98. 验证二叉搜索树
数据结构·算法·二叉树·二叉搜索树·合并二叉树·最大二叉树·验证二叉搜索树
Dovis(誓平步青云)22 天前
《C++二叉搜索树原理剖析:从原理到高效实现教学》
开发语言·c++·算法·二叉搜索树·原理剖析
今天背单词了吗9801 个月前
算法学习笔记:26.二叉搜索树(生日限定版)——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·学习·算法··二叉搜索树
June`3 个月前
深度刨析树结构(从入门到入土讲解AVL树及红黑树的奥秘)
数据结构·c++·二叉树·红黑树·二叉搜索树··avl树
喝养乐多长不高3 个月前
数据结构--红黑树
java·数据结构·算法·红黑树·二叉搜索树·avl树
DARLING Zero two♡3 个月前
C++漫步结构与平衡的殿堂:AVL树
c++·二叉搜索树·avl树
柏木乃一4 个月前
平衡二叉搜索树模拟实现1-------AVL树(插入,删除,查找)
c++·学习·程序人生·算法·二叉搜索树·avl树·平衡二叉搜索树
techpupil4 个月前
LeetCode240. 搜索二维矩阵 II(巧妙转换)
矩阵·二叉搜索树