首页 > 其他分享 >刷刷刷 Day 20 | 700. 二叉搜索树中的搜索

刷刷刷 Day 20 | 700. 二叉搜索树中的搜索

时间:2023-01-24 21:33:18浏览次数:60  
标签:20 val 700 二叉 搜索 return root 节点

700. 二叉搜索树中的搜索

LeetCode题目要求

给定二叉搜索树(BST)的根节点 root 和一个整数值 val。

你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。

图

示例

输入:root = [4,2,7,1,3], val = 2
输出:[2,1,3]
解题思路

此题可以根据普通前序遍历方式,直接找到结果。
既然这里说明的是对于二叉搜索树的搜索,那么就要根据二叉搜索树的特性来进行定位 val。如果 val 小于节点值,那么就在 left 搜索;否则在 right 搜索。
下面把二叉搜索树搜索方式及普通方式都写了出来

上代码

class Solution {
    
    // 根据二叉搜索树的特性进行查找,减少查找次数
    public TreeNode searchBST(TreeNode root, int val) {

        // 前序遍历
        if (root == null) {
            return root;
        }

        if (root.val == val) {
            return root;
        }
        
        if (root.val > val) {
            return searchBST(root.left, val);
        } else {
            return searchBST(root.right, val);
        }
    }

    //  普通模式
    public TreeNode searchBST2(TreeNode root, int val) {

        // 前序遍历
        if (root == null) {
            return root;
        }

        if (root.val == val) {
            return root;
        }
        
        TreeNode leftNode = searchBST(root.left, val);
        if (leftNode != null) {
            return leftNode;
        }
        return searchBST(root.right, val);
    }
重难点

了解二叉搜索树的特性,是左节点 < 父结点 < 右节点

附:学习资料链接

标签:20,val,700,二叉,搜索,return,root,节点
From: https://www.cnblogs.com/blacksonny/p/17066418.html

相关文章

  • PostgreSQL(PG)考试认证 2023新春计划
    邀请返现每人可向PGCCC官方班班索要一个码,每邀请1人报名成功,可返50元,上不封顶本活动仅限PCP、PCM在被邀请人完成考试后,返还。(不报名也可以参与) 特惠日期:2023年1月2......
  • 刷刷刷 Day 20 | 617. 合并二叉树
    617.合并二叉树LeetCode题目要求给你两棵二叉树:root1和root2。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两......
  • 2023 hgame趣题——2
    Helpmarvin最近在做hgameweek3的题,强度不小,Bi0s剩下那个密码(bad2code)过些天再更,今天发一个hgameweek1的IoT题目。SPI协议用单独的数据线和单独的时钟信号来保证发送......
  • 《数据结构》课程设计任务书[2023-01-24]
    《数据结构》课程设计任务书[2023-01-24]《数据结构》课程设计任务书此任务书仅适用选课储岳中老师的学生QQ群:7492682161(入群密码:2022DS1)一、设计要求仔细阅读《......
  • 刷刷刷 Day 20 | 654. 最大二叉树
    654.最大二叉树LeetCode题目要求给定一个不重复的整数数组 nums。 最大二叉树 可以用下面的算法从 nums递归地构建:创建一个根节点,其值为 nums中的最大值。递......
  • P2602 [ZJOI2010] 数字计数
    P2602[ZJOI2010]数字计数-洛谷|计算机科学教育新生态(luogu.com.cn)数位DP模板题由于是对0~9进行统计,所以我们只需对每一个数进行数位DP即可不过对于0和1~9还是......
  • 学习笔记——Linux中搜索查找类命令;压缩和解压类;Linux挂载和卸载;进程线程类命令;RPM;YUM
    2023-01-24一、搜索查找类命令1、find命令(1)find-name"*.txt" (功能描述:查找当前目录下包含“.txt”的文件)2、grep过滤查找及“|”管道符管道符,“|”,表示将前一个命......
  • 2023-1-24 WAMP与XAMPP同时安装在一台电脑上是否冲突?
    WAMP与XAMPP同时安装在一台电脑上是否冲突?会有冲突首先,Apache和MySQL都是服务,这里就有可能冲突,这是最大的问题;其次,才是Apache和MySQL监听端口冲突的问题,端口冲突都很......
  • P2260 [清华集训2012]模积和
    P2260[清华集训2012]模积和求\[\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}(n\bmodi)\times(m\bmodj),i\neqj\]mod19940417的值分析假设\(n\lem\)$......
  • 2023牛客寒假算法基础集训营1 个人题解(ACDHKL)
    A.WorldFinal?WorldCup!(I)题意:给10场比赛的点球输赢情况,奇数为A队点球,偶数为B队点球思路:用两个变量x,y来分别存A队当前赢的场次和B队当前赢的场次然后就就扫......