一、首先是二叉树: 1)定义 2)前、中、后序遍历 二、二叉搜索树: 中序遍历是有序的 本身的定义也是递归的: 1)查找:复杂度 log2n (n表示数的节点个数) 极端情况,退化成链表,查找效率和链表一样 2)插入节点、删除节点也要会 三、平衡二叉树:左右子树都是平衡二叉树 1)2-3树 2)AV ...
分类:
其他好文 时间:
2020-11-07 17:44:46
阅读次数:
36
题目介绍 判断给定二叉树是否为一棵二叉搜索树。 Examples: 2 / \ 1 3 Input: [2,1,3] Output: true 5 / \ 1 4 / \ 3 6 Input: [5,1,4,null,null,3,6] Output: false Solution 仅仅使用递归判断 ...
分类:
其他好文 时间:
2020-10-26 11:18:28
阅读次数:
24
线段树 对于维护区间内的信息,我们可使用RMQ,但这种做法的缺点是无法快速修改,而线段树这种数据结构则可以实现实时的查询、修改(单点、区间)。 原理: 线段树是一种二叉搜索树,对于每个节点,他代表区间L~R的信息,而其两个子节点分别代表L~mid、mid+1~R的信息。 建树: 只需要遍历到每个叶子 ...
分类:
其他好文 时间:
2020-10-13 16:58:38
阅读次数:
18
题目链接 530. 二叉搜索树的最小绝对差 题目描述 解题思路 1.利用中序遍历把树转为有序数组,然后在数组上求两个相邻数字的最小值。 2.同样采用中序遍历,可以直接在递归遍历的过程中记录相邻数字的最小值。 3.因为题目给的树是二叉排序树,所以中序遍历的结果一定是一个有序数组,所以两个数的差的最小值 ...
分类:
其他好文 时间:
2020-10-12 20:05:23
阅读次数:
15
//https://blog.csdn.net/code92007/article/details/94591571 笛卡尔树是形如上图的一棵树,每个点有值{Key,Val},Val满足堆的性质,Key满足二叉搜索树性质 构造(区间最小): O(n) 性质1:对于已经构造好的笛卡尔树,子树的根节点的 ...
分类:
其他好文 时间:
2020-09-23 23:50:26
阅读次数:
43
方法一:BFS模板的应用。 总结的DFS、BFS模板参考:https://www.cnblogs.com/panweiwei/p/13065661.html class Solution(object): # BFS def kthLargest(self, root, k): """ :type ...
分类:
其他好文 时间:
2020-09-18 00:03:27
阅读次数:
35
二叉搜索树(BST, Binary Search Tree) 1. 二叉树也是一颗二叉树, 可以为空 2. 如果不为空,则满足以下条件 1. 非空左子树的所有键值小于其根节点的键值 2. 非空右子树的所有键值大于其根节点的键值 3. 左, 右子树本身也是搜索树 3. 二叉搜索树的特点 1. 二叉搜索 ...
分类:
其他好文 时间:
2020-09-17 23:06:23
阅读次数:
31
平衡树 1. 二叉搜索树的优点 二叉搜索树作为数据存储的结构,最大的优势是可以快速找到给定关键字的项,并且可以快速的实现插入和删除数据操作 因为二叉搜索树采用了二分查找的策略 2. 二叉搜索树存在的问题 但是二叉搜索树有一个麻烦的问题:若插入的数据是一个有序数列(从小到大/从大到小),会造成二叉搜索 ...
分类:
其他好文 时间:
2020-09-17 23:05:38
阅读次数:
28
二叉平衡树: 平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、T ...
分类:
其他好文 时间:
2020-09-17 12:00:19
阅读次数:
59
题目 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平 ...
分类:
编程语言 时间:
2020-09-16 12:21:04
阅读次数:
31