news 2026/8/8 1:22:26

LC.700 | 二叉搜索树中的搜索 | 树 | 利用BST有序性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LC.700 | 二叉搜索树中的搜索 | 树 | 利用BST有序性

输入:
二叉搜索树的根节点root和一个整数val

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

输出:
目标节点的指针TreeNode*


思路:

二叉搜索树(BST)的核心特性是:左 < 根 < 右。这使得我们在树上的搜索过程类似于二分查找,不需要遍历整棵树。

  1. 递归逻辑(主解法):

    • 终止条件:如果当前节点为空(没找到)或者当前节点值等于目标值(找到了),直接返回当前节点。
    • 利用性质
      • 如果val < root->val:说明目标在左子树,递归调用searchBST(root->left, val)
      • 如果val > root->val:说明目标在右子树,递归调用searchBST(root->right, val)
  2. 迭代逻辑(注释写法):

    • 对于 BST 的搜索,迭代法其实更加高效且直观,因为它不需要维护递归栈。
    • 使用while循环,根据大小关系不断移动root指针指向左孩子或右孩子,直到找到或者root变为null

复杂度:

  • 时间复杂度:O(h) 树高
  • 空间复杂度:O(h) 树高

classSolution{public://找到了不必提 直接返回即可//找不到的标准是什么呢 就是右子树的最小节点比你 左子树的最大节点比你小 中间也不等于 这样就是不存在//问题是什么呢 递归查找怎么写...TreeNode*searchBST(TreeNode*root,intval){if(!root){returnnullptr;}if(root->val==val){returnroot;}elseif(root->val>val){returnsearchBST(root->left,val);}else{returnsearchBST(root->right,val);}}/* //while循环写法 while (!isFind) { if (!root) { ans = nullptr; isFind = true; } else if (root->val == val) { ans = root; isFind = true; } else if (root->val > val) { root = root->left; } else { root = root->right; } } */};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 20:36:59

解锁优质创意素材:这四个专业平台值得收藏

在这个视觉驱动的时代&#xff0c;找到合适的正版素材已成为内容创作者的核心技能之一。无论是制作短视频、设计宣传物料&#xff0c;还是完成商业项目&#xff0c;优质的素材资源不仅能提升作品的专业度&#xff0c;更能有效规避版权风险。以下为您梳理四个风格各异但同样可靠…

作者头像 李华
网站建设 2026/8/6 23:07:38

毕设分享 深度学习遮挡下的人脸识别(源码+论文)

文章目录 0 前言1 项目运行效果2 设计概要4 最后 0 前言 &#x1f525;这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师…

作者头像 李华
网站建设 2026/8/7 15:36:46

Python UV搭配Miniconda:下一代包管理体验

Python UV 搭配 Miniconda&#xff1a;下一代包管理体验 在现代 AI 与数据科学项目中&#xff0c;一个常见的痛点是&#xff1a;明明本地跑得好好的代码&#xff0c;换到服务器或同事机器上就报错。追溯原因&#xff0c;往往是 numpy 版本不一致、CUDA 驱动缺失、或者某个依赖包…

作者头像 李华
网站建设 2026/8/7 21:26:23

实验室装修,怎样做更省心?

实验室装修&#xff0c;怎样做更省心&#xff1f;前言实验室装修是一项复杂且专业性极强的工程&#xff0c;涉及多个方面的考量。如何在保证质量和功能的前提下&#xff0c;让整个过程更加省心呢&#xff1f;本文将为您提供一些实用的建议。行业现状与痛点分析实验室装修的复杂…

作者头像 李华
网站建设 2026/8/7 14:56:52

Redis多数据源配置指南

Spring Boot Redis 多数据源配置指南 基于 Spring Boot 3.x + Lettuce 连接池,支持单机版和集群版 目录 1. Maven 依赖 2. 单机版多数据源配置 3. 集群版多数据源配置 4. 使用方式 5. 常见问题 1. Maven 依赖 <!-- Spring Data Redis -->

作者头像 李华