【LeetCode75】第四十一题 二叉搜索树中的搜索

news2024/12/24 11:04:56

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

题目给我们一个搜索二叉树,让我们找出节点值等于目标的节点并返回出去。

首先我们可以直接遍历整棵二叉树,找到值相同的节点就返回出去,不过这样就没有用到二叉搜索数的特性了。

二叉搜索数的特性就是,每一个节点的左子树上所有节点的值都会比当前节点的值更小,而右子树上所有节点的值都会比当前节点的值更小。

因此我们在遍历搜索二叉树的时候将当前节点的值和目标值做比较,如果值和当前节点的值相同,那么返回该节点。如果当前节点的值比目标值更小,那说明如果有值等于目标值的节点,那一定是在当前节点的右子树,所以此时我们应该向右子树移动。反之则向左子树移动。

直到找到了目标节点或者是遍历到了空指针节点,那么都将当前节点返回出去即可。

代码:

class Solution {
public:
    TreeNode* searchBST(TreeNode* root, int val) {
        if(root==nullptr || root->val==val) return root;
        if(root->val>val) return searchBST(root->left,val);
        else return searchBST(root->right,val);
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/947909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mybatis2,注解实现CRUD

2,注解实现CRUD 使用注解开发会比配置文件开发更加方便。如下就是使用注解进行开发 Select(value "select * from tb_user where id #{id}") public User select(int id);注意: 注解是用来替换映射配置文件方式配置的,所以使用了…

使用 Privoxy 在 Linux 上配置本地代理服务器详细教程

Privoxy 是一个功能强大的开源网络代理软件,它可以帮助我们在 Linux 系统上搭建本地代理服务器。通过配置和使用 Privoxy,您可以实现更安全、匿名以及自定义过滤规则等高级特性。本文将详细介绍如何在 Linux 环境下利用 Privoxy 配置并运行本地代理服务器…

文字转语音怎么转?几种简单转换方法快速转换

将文本转换为语音,可以帮助那些有视觉障碍的人士更便捷地获取信息,以便于听觉上的理解和处理。对于那些需要进行多任务处理的人士,例如在开车或做家务时需要获取信息的人,文字转语音也可以提供便利。那么怎么将文字转换成语音呢&a…

【100天精通python】Day47:python网络编程_Web编程,前后端以及静态服务器

目录 1 网络编程与web编程 1.1 网络编程 1.2 web编程 1.3 前后端交互的基本原理 2 Web开发基础 2.1 HTTP协议 2.2 Web服务器 2.3 前端基础 2.3.1 HTML(超文本标记语言) 2. 3.2 CSS(层叠样式表) 2.3.3 JavaScript 2.…

【pyqt5界面化工具开发-1】运行界面程序框架+按钮+文本+位置的设置

目录 一、运行界面化框架 二、基础控件 目标1:新增按钮 目标2:新增文本: 目标3:设置位置 一、运行界面化框架 import sysfrom PyQt5.QtWidgets import QApplication,QWidgetif __name__ __main__:# 接收参数(仅…

数据库的备份与分类以及日志

目录 1、数据库的概念 1.1、数据备份的重要性 1.2、造成数据丢失的原因 1.3、 数据库备份的分类 1.3.1、从物理与逻辑的角度, 1.3.2、原理图 1.3.3.1 完全备份: 1.3.2.2 差异备份 1.2.3.3、 增量备份 1.3.3、 备份方式比较 1.4、常见的备份方…

pdf转word怎么进行转换?这几种转换技巧别错过

pdf转word怎么进行转换?将PDF转换为Word文档可以带来很多便利。一些人可能需要编辑PDF文件中的文本或者图片,但是PDF文件通常不易于编辑。将PDF文件转换为Word文档之后,就可以像编辑普通Word文档一样轻松地编辑它们。那么今天小编就来给大家介…

计算机竞赛 基于机器视觉的火车票识别系统

文章目录 0 前言1 课题意义课题难点: 2 实现方法2.1 图像预处理2.2 字符分割2.3 字符识别部分实现代码 3 实现效果最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉的火车票识别系统 该项目较为新颖,适合作为竞赛…

IntelliJ IDEA2021.3.1 使用 MybatisCodeHelperPro插件

一、 下载 下载破解后的 MybatisCodeHelperPro 的 V3.2.2版本 V3.2.2-CSDN 或者 V3.2.2-Gitee 二、 应用 将下载下来的Zip文件 放到电脑上的某个位置 (最好放在Idea 管理插件的 plugins 下) 然后自从搜索 Idea如何从磁盘中应用插件 三、激活 由于已经破解过了 但是还是需要激活…

基于信息增益的特征重要性分析

培训和测试样本 用于模型评估的数据集包括8652个F1杂交玉米样本,这些样本具有测量的抽穗天数(DTT)、株高(PH)和穗重(EW)表型,这些表型来自母体库和30名父系测试者小组的杂交&#x…

服务报network error错误

问题:服务请求时会偶发性的报【network error网络超时】(请求瞬间就报) 可能原因: 服务器linux内核调优时将:net.ipv4.tcp_tw_recycle设置为1,开启TCP连接中TIME-WAIT sockets的快速回收,默认为…

GNU make系列之介绍Makefile(0)

一.欢迎来到我的酒馆 在本章节介绍Makefile。 目录 一.欢迎来到我的酒馆二.GNU make 预览三.一个简单的Makefile四.make程序如何处理Makefile文件五.在Makefile中使用变量 二.GNU make 预览 2.1 GNU make工具会自动决定哪些程序需要被重新编译,并且执行相应的命令来…

彩虹外链网盘V5.5更新 支持批量封禁/优化加载速度

彩虹外链网盘V5.5更新 支持批量封禁/优化加载速度 彩虹外链网盘,是一款PHP网盘与外链分享程序,支持所有格式文件的上传,可以生成文件外链、图片外链、音乐视频外链,生成外链同时自动生成相应的UBB代码和HTML代码,还可…

Mybatis1.7 修改

1.7 修改 1.7.1 编写接口方法1.7.2 编写SQL语句1.7.3 编写测试方法 如图所示是修改页面,用户在该页面书写需要修改的数据,点击 提交 按钮,就会将数据库中对应的数据进行修改。注意一点,如果哪儿个输入框没有输入内容,我…

苹果手机怎么录音?分享2个简单方法

录音软件能够帮助我们记录学习和工作中一些重要的笔记、讲座、课堂语录、音乐灵感等等。录制完成后它会自动生成文件,可供人们随时随地进行听阅。 但对于刚使用苹果手机的用户来说,他们还不太熟悉苹果系统,所以找不到语音备忘录在哪里。那么…

Linux CentOS7sed的替换及逆转功能

在各项工作,需要大量的文本处理。有时,想把文件按行翻转一下,最后一行显示在第一行,倒数第二行显示在正数第二行,等等。这是行的逆转要求,可以通过命令tac对文件操作,达到目的;有时&…

百望云产业链图谱引领数字变革 赋能企业高价值数字资产管理

全球经济相互依存度增加,技术进步的速度越来越快,市场竞争日益激烈……这些因素共同塑造了一个复杂多变、不确定性极高的商业环境。在当今风云变幻的经济格局和市场波动不断的大背景下,众多企业们面临着如何利用海量数据赋能业务决策的挑战和…

0829【综述】面向时空数据的区块链研究综述

摘要:时空数据包括时间和空间2个维度,常被应用于物流、供应链等领域。传统的集中式存储方式虽然具有一定的便捷性,但不能充分满足时空数据存储及查询等要求,而区块链技术采用去中心化的分布式存储机制,并通过共识协议来保证数据的安全性。研究现有区块链1.0、2.0和以Block-DAG为…

Java--输入(格式化)输出

1、读取输入 要想通过控制台进行输入,首先需要构造一个与“标准输入流”System.in关联的Scanner对象。 import java.util.*; // Scanner类定义在java.util包中 ​ Scanner in new Scanner(System.in); java.util.Scanner Scanner(InputStream in) 用给定的输人流…

CSDN每日一练 |『清理磁盘空间』『奇偶排序』『编号分组』2023-08-30

CSDN每日一练 |『清理磁盘空间』『奇偶排序』『编号分组』2023-08-30 一、题目名称:清理磁盘空间二、题目名称:奇偶排序三、题目名称:奇偶排序四、题目名称:编号分组 一、题目名称:清理磁盘空间 时间限制:1…