二叉搜索树的性质:(1)root为空;(2)或者root左子树中所有元素都小于root->val,root右子树中所有元素都大于root->val, 且root的左右子树也是二叉搜索树。 所以要找两个节点的最近公共祖先,有三种情况: (1)p,q都在root的左子树中,则我们到root的左子树去寻找 ...
分类:
其他好文 时间:
2020-08-26 18:35:35
阅读次数:
47
上节回顾 上一章我们介绍了二叉树,二叉搜索树相关的一些知识。 当一个二叉搜索树是一个满二叉树,或者是完美二叉树的时候可以计算一下二叉搜索树的查找,插入,删除的时间复杂度。 从代码来看它们的时间复杂度都是和树的高度相关的。 满二叉树的高度是$log_2(n + 1)$,完美二叉树的高度是$floor( ...
分类:
其他好文 时间:
2020-08-17 17:10:18
阅读次数:
56
题目描述: 给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 例如, 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和值: 2 你应该返回如下子树: 2 / \ 1 3 来源:力扣(Leet ...
分类:
其他好文 时间:
2020-08-17 16:46:20
阅读次数:
54
和整数二分不同,浮点数不存在由于(整数)取整导致的边界问题,每次二分区间严格减半, 因此比整数二分简单的多,每次更新边界时直接让r = mid或l = mid即可。 看一道题,acwing790.数的三次方根 浮点数二分除了更新区间和浮点数不同,还有就是二分终止条件,一般有两种写法,一种就是当前区间 ...
分类:
其他好文 时间:
2020-08-11 17:29:54
阅读次数:
74
99. 恢复二叉搜索树 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/recover-binary-search-tree 题目 二叉搜索树中的两个节点被错误地交换。 请在不改变其结构的情况下,恢复这棵树。 示例 1: 输入: [1,3,null ...
分类:
编程语言 时间:
2020-08-08 21:20:59
阅读次数:
83
在前几篇文章中,我们讨论了PostgreSQL索引引擎、访问方法的接口以及两种访问方法:hash索引和B-tree。在本文中,我们将描述GiST索引。 GiST GiST是广义搜索树«generalized search tree»的缩写。这是一个平衡搜索树,就像前面讨论的«b-tree»。 有什么 ...
分类:
数据库 时间:
2020-08-06 17:02:22
阅读次数:
90
什么是数据结构? 数据结构是计算机存储、组织数据的方式。 为什么需要数据结构? 数据是程序的核心要素,因此数据结构的价值不言而喻。在不同的场景下,数据需要以特定的方式存储,我们有不同的数据结构可以满足我们的需求。 8中常用的数据结构 数组、栈、队列、链表、图、树、前缀树、哈希表 1.数组 例如上图展 ...
分类:
其他好文 时间:
2020-08-04 09:49:12
阅读次数:
92
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3 示例 1: 输入: [1,6,3,2,5] 输出: false 示例 2: 输入: [1 ...
分类:
其他好文 时间:
2020-08-03 00:51:43
阅读次数:
106
本题要求实现给定二叉搜索树的5种常用操作。 函数接口定义: BinTree Insert( BinTree BST, ElementType X ); BinTree Delete( BinTree BST, ElementType X ); Position Find( BinTree BST, ...
分类:
其他好文 时间:
2020-08-02 17:35:53
阅读次数:
103