当前位置: 首页 > news >正文

二叉搜索树中的搜索(力扣700)

首先介绍一下什么是二叉搜索树。

    二叉搜索树是一个有序树:

  • 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  • 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  • 它的左、右子树也分别为二叉搜索树;

    这就决定了,二叉搜索树,递归遍历和迭代遍历和普通二叉树都不一样。
    就本题而言,我们使用递归法,遍历的顺序取决于节点的值的大小。而不是传统的前中后序。
    大家可以结合我的代码以及注释理解此题。
    代码及注释如下:
    /*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
    class Solution {
    public:TreeNode* searchBST(TreeNode* root, int val) {//创建一个变量存放递归函数的返回值TreeNode* result;//终止条件1:遍历到空节点if(root == NULL) return NULL;//终止条件2:遍历到的节点值等与valif(root -> val == val) return root;//如果当前节点值较大,则左递归if(root -> val > val){result = searchBST(root -> left,val);}//如果当前节点值较小,则右递归if(root -> val < val){result =  searchBST(root -> right,val);}return result;}
    };

http://www.lryc.cn/news/526518.html

相关文章:

  • 记录让cursor帮我给ruoyi-vue后台管理项目整合mybatis-plus
  • 【可实战】Linux 系统扫盲、 Shell扫盲(如何写一个简单的shell脚本)
  • sqlzoo答案4:SELECT within SELECT Tutorial
  • 【fly-iot飞凡物联】(20):2025年总体规划,把物联网整套技术方案和实现并落地,完成项目开发和课程录制。
  • Lucene常用的字段类型lucene检索打分原理
  • 适用于IntelliJ IDEA 2024.1.2部署Tomcat的完整方法,以及笔者踩的坑,避免高血压,保姆级教程
  • XSS靶场通关详解
  • Excel 技巧15 - 在Excel中抠图头像,换背景色(★★)
  • 备忘-humanplus相关的代码解析
  • 青少年编程与数学 02-008 Pyhon语言编程基础 01课题、语言概要
  • XSS (XSS)分类
  • [Linux]el8安全配置faillock:登录失败达阈值自动锁定账户配置
  • 最新-CentOS 7安装1 Panel Linux 服务器运维管理面板
  • selenium定位网页元素
  • 積分方程與簡單的泛函分析8.具連續對稱核的非齊次第II類弗雷德霍姆積分算子方程
  • 长理算法复习
  • 机器学习-K近邻算法
  • 使用rsync+inotify简单实现文件实时双机双向同步
  • Ubuntu 24.04 LTS开机自启动脚本设置方法
  • 谈谈对JavaScript 中的事件冒泡(Event Bubbling)和事件捕获(Event Capturing)的理解
  • 解读2025年生物医药创新技术:展览会与论坛的重要性
  • 【第七天】零基础入门刷题Python-算法篇-数据结构与算法的介绍-一种常见的分治算法(持续更新)
  • Spring Data JPA 实战:构建高性能数据访问层
  • Python JSON:深入解析与高效应用
  • 【C语言进阶(四)】指针进阶详解(上)
  • DDD架构实战第五讲总结:将领域模型转化为代码
  • FPGA实现任意角度视频旋转(完结)视频任意角度旋转实现
  • CPU 缓存基础知识
  • 微信小程序date picker的一些说明
  • Vue3 + TS 实现批量拖拽 文件夹和文件 组件封装