
700 二叉搜索树中的搜索(递归)
检查根节点:如果根节点为空,则返回 NULL。 比较根节点值:如果根节点的值等于目标值,返回根节点。 确定搜索方向:如果根节点的值小于目标值,则搜索右子树;否则,搜索左子树。 递归查找:继续上述过程,直到找到目标节点或确定不存在。 TreeNode类:定义了二叉搜索树的节点,包含值、左子树和右子树。 searchBST函数:实现了递归查找逻辑。
发布日期:2021-05-07 21:56:20
浏览次数:21
分类:精选文章
本文共 882 字,大约阅读时间需要 2 分钟。
二叉搜索树(BST)的查找问题可以通过递归的方式解决。以下是详细的解决方案:
问题描述
给定一个二叉搜索树的根节点和一个值,我们需要在树中找到值等于该值的节点,并返回以该节点为根的子树。如果不存在这样的节点,则返回 NULL。
思路分析
由于二叉搜索树的特点(左子树的值小于根节点,右子树的值大于根节点),我们可以利用递归来查找目标值。具体来说:
解决代码
class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def searchBST(self, root: TreeNode, val: int) -> TreeNode: if not root: return None if root.val == val: return root if root.val < val: return self.searchBST(root.right, val) else: return self.searchBST(root.left, val)
代码解释
- 根节点为空:直接返回 NULL。
- 值相等:返回当前根节点。
- 值比较:根据比较结果决定左或右子树的方向进行递归查找。
这种方法确保了在每一步都正确地利用二叉搜索树的结构特点,从而高效地找到目标节点或确定其不存在。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月02日 05时30分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
laravel server error 服务器内部错误
2019-03-15
一道简单的访问越界、栈溢出pwn解题记录
2019-03-15
响应的HTTP协议格式+常见的响应码
2019-03-15
springboot redis key乱码
2019-03-16
idea thymeleaf页面变量报错解决
2019-03-16
解决打开 json 文件中文乱码的问题
2023-01-23
计算机网络基础:PKI(公钥基础设施)
2023-01-23
计算机网络基础:文件共享服务器(注册表更改)
2023-01-23
乒乓球问题
2023-01-23
回溯法介绍
2023-01-23
有了Trae,人人都是程序员的时代来了
2023-01-23
程序员都看不懂的代码
2023-01-23
LLM+多智能体协作:基于CrewAI与DeepSeek的邮件自动化实践
2023-01-23
404页面自动跳转源码
2023-01-23
46:把数字翻译成字符串(动态规划)
2023-01-23
500套精美Logo样机模板可直接套用、轻松制作炫酷logo
2023-01-23
ASP.NET MVC4 json序列化器
2023-01-23
@ResponseBody 和 @RequestBody
2023-01-23