一、二叉搜索树的定义与基本操作:

什么是二叉搜索树?

二叉搜索树又叫二叉排序树和二叉查找树,对于二叉树中的结点的属性值是按照一定规律排列的

二叉搜索树的查找操作

二叉搜索树的插入操作:

二叉搜索树的删除操作:

对于删除操作比较复杂,我们可以分为以下三种情况进行讨论

  • 待删除的结点为叶子结点

    找到要删除的结点,直接删除即可

  • 待删除的结点只有左子树或右子树

    将该结点的父节点指向该节点的子树即可

  • 待删除的结点既有左子树又有右子树

    将要删除节点 node 位置上替换成左子树最右边的节点或者右子树最左边的节点【左子树的最大值或右子树的最小值】

通过几道算法题来巩固对二叉搜索树的理解:

二、二叉搜索树相关算法题

1.LeetCode 700:二叉搜索树中的搜索


【二叉搜索树专题】—— 相识到相知相关推荐

  1. 【力扣动态规划基础专题】:509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 62. 不同路径 63. 不同路径 II 343. 整数拆分 96. 不同的二叉搜索树

    /** 动态规划专题:这是最简单的并且已经给出了转移方程,平时我们用dp[]数组来表示转移方程转移方程: dp[n] = dp[n-1]+dp[n-2]初始值:dp[0] = 0 , dp[1] = ...

  2. 寻找Nemo的乐趣:什么是二叉搜索树?

    全文共2613字,预计学习时长7分钟 图源:unsplash 生活中,我们经常需要找东西或做决定,一个简单的方法就是将选择一分为二.假设你在玩"猜猜我是谁"的游戏,目标是猜测你的对 ...

  3. LeetCode简单题之二叉搜索树的最小绝对差/最小距离

    题目 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 . 差值是一个正数,其数值等于两值之差的绝对值. 示例 1: 输入:root = [4,2,6,1,3] 输出: ...

  4. LeetCode简单题之二叉搜索树的范围和

    题目 给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和. 示例 1: 输入:root = [10,5,15,3,7,null,18], low = 7, ...

  5. 【剑指Offer】23、二叉搜索树的后序遍历序列

      题目描述:   输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同.   解题思路:   对于后续遍历序列,序 ...

  6. 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!

    构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...

  7. 剑指offer:面试题36. 二叉搜索树与双向链表

    题目: 二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表.要求不能创建任何新的节点,只能调整树中节点指针的指向. 为了让您更好地理解问题,以下面的二叉搜索树为例: ...

  8. 剑指offer:面试题33. 二叉搜索树的后序遍历序列

    题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 false.假设输入的数组的任意两个数字都互不相同. 参考以下这颗二叉搜 ...

  9. 二叉树:二叉搜索树实现 逆序数问题

    关于逆序数的问题描述如下: 已知数组nums,求新数组count,count[i]代表了在nums[i]右侧且比 nums[i]小的元素个数. 例如: nums = [5, 2, 6, 1], cou ...

最新文章

  1. select三级联动 怎么删除前一个的_python测试开发django57.xadmin选项二级联动
  2. 优化你的springboot
  3. 研究生再次大幅扩招!高校能否承载?教育部最新表态来了
  4. 项目梳理6——使用WebApiTestClient为webapi添加测试
  5. Linux发行版,分类,CentOS下载
  6. Java实现算法导论中最长公共子序列(LCS)动态规划法
  7. 如何结合PICgo,Typora以及阿里云对象存储OSS搭建自己图床写博客
  8. 开源之夏 | 阿里开源近百任务上线
  9. CSS-带尖角的对话框
  10. 所有科研人都应该收藏的论文下载网站,不是sci-hub!
  11. Sphinx以及coreseek的安装及使用
  12. 生成图片_GitHub Star 3.2K Java 图片缩略图生成库
  13. 以太币转帐速度_燃起来吧!一文带你读懂以太坊网络中的Gas、Gas Fee、Gas Price、Gas...
  14. java通过smtp发送电子邮件
  15. python打印右对齐_python右对齐的实例方法
  16. C/C++语言开发环境,【5款免费编程器】请查收!
  17. 非线性光纤光学——光孤子4
  18. KB和kB,MB和mb,详细解释计算机存储单位
  19. 多元函数微分学小结(2):从反函数定理到隐函数存在定理
  20. 从ADS到RealView MDK

热门文章

  1. android开发 修改图片色调饱和度、色相、亮度处理
  2. C语言实现血型查询系统
  3. 设置WiFi静态ip、网关、子网掩码、dns
  4. saiku多sort改造
  5. wikioi 1014 装箱问题
  6. c#吃豆子游戏,模仿百度在线应用吃豆子
  7. 物联网安全-动态口令TOTP
  8. 2023-2029年中国微型汽车行业发展动态及市场需求前景报告
  9. 七个要点诱惑玩家陷入你的游戏魅力
  10. Echarts - 饼状图圆环中部添加自定义文字