【二叉搜索树专题】—— 相识到相知
一、二叉搜索树的定义与基本操作:
什么是二叉搜索树?
二叉搜索树又叫二叉排序树和二叉查找树,对于二叉树中的结点的属性值是按照一定规律排列的
二叉搜索树的查找操作:
二叉搜索树的插入操作:
二叉搜索树的删除操作:
对于删除操作比较复杂,我们可以分为以下三种情况进行讨论
待删除的结点为叶子结点
找到要删除的结点,直接删除即可
待删除的结点只有左子树或右子树
将该结点的父节点指向该节点的子树即可
待删除的结点既有左子树又有右子树
将要删除节点 node 位置上替换成左子树最右边的节点或者右子树最左边的节点【左子树的最大值或右子树的最小值】
通过几道算法题来巩固对二叉搜索树的理解:
二、二叉搜索树相关算法题
1.LeetCode 700:二叉搜索树中的搜索
- 【力扣动态规划基础专题】:509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 62. 不同路径 63. 不同路径 II 343. 整数拆分 96. 不同的二叉搜索树
/** 动态规划专题:这是最简单的并且已经给出了转移方程,平时我们用dp[]数组来表示转移方程转移方程: dp[n] = dp[n-1]+dp[n-2]初始值:dp[0] = 0 , dp[1] = ...
- 寻找Nemo的乐趣:什么是二叉搜索树?
全文共2613字,预计学习时长7分钟 图源:unsplash 生活中,我们经常需要找东西或做决定,一个简单的方法就是将选择一分为二.假设你在玩"猜猜我是谁"的游戏,目标是猜测你的对 ...
- LeetCode简单题之二叉搜索树的最小绝对差/最小距离
题目 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 . 差值是一个正数,其数值等于两值之差的绝对值. 示例 1: 输入:root = [4,2,6,1,3] 输出: ...
- LeetCode简单题之二叉搜索树的范围和
题目 给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和. 示例 1: 输入:root = [10,5,15,3,7,null,18], low = 7, ...
- 【剑指Offer】23、二叉搜索树的后序遍历序列
题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路: 对于后续遍历序列,序 ...
- 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!
构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...
- 剑指offer:面试题36. 二叉搜索树与双向链表
题目: 二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表.要求不能创建任何新的节点,只能调整树中节点指针的指向. 为了让您更好地理解问题,以下面的二叉搜索树为例: ...
- 剑指offer:面试题33. 二叉搜索树的后序遍历序列
题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 false.假设输入的数组的任意两个数字都互不相同. 参考以下这颗二叉搜 ...
- 二叉树:二叉搜索树实现 逆序数问题
关于逆序数的问题描述如下: 已知数组nums,求新数组count,count[i]代表了在nums[i]右侧且比 nums[i]小的元素个数. 例如: nums = [5, 2, 6, 1], cou ...
最新文章
- select三级联动 怎么删除前一个的_python测试开发django57.xadmin选项二级联动
- 优化你的springboot
- 研究生再次大幅扩招!高校能否承载?教育部最新表态来了
- 项目梳理6——使用WebApiTestClient为webapi添加测试
- Linux发行版,分类,CentOS下载
- Java实现算法导论中最长公共子序列(LCS)动态规划法
- 如何结合PICgo,Typora以及阿里云对象存储OSS搭建自己图床写博客
- 开源之夏 | 阿里开源近百任务上线
- CSS-带尖角的对话框
- 所有科研人都应该收藏的论文下载网站,不是sci-hub!
- Sphinx以及coreseek的安装及使用
- 生成图片_GitHub Star 3.2K Java 图片缩略图生成库
- 以太币转帐速度_燃起来吧!一文带你读懂以太坊网络中的Gas、Gas Fee、Gas Price、Gas...
- java通过smtp发送电子邮件
- python打印右对齐_python右对齐的实例方法
- C/C++语言开发环境,【5款免费编程器】请查收!
- 非线性光纤光学——光孤子4
- KB和kB,MB和mb,详细解释计算机存储单位
- 多元函数微分学小结(2):从反函数定理到隐函数存在定理
- 从ADS到RealView MDK