面试题68:树中两个结点的最低公共祖先 题目描述 输入两个树结点,求它们的最低公共祖先。 问题分析 这属于剑指Offer面试案例中探讨的一道问题。 在解答之前要先和面试官确定是否为二叉树,如果是,还要确定是否为二叉搜索树,是否有父引用,或者仅仅是普通二叉树。 案例中确定树为二叉树,不过树可能有两种, ...
分类:
其他好文 时间:
2020-02-01 19:51:17
阅读次数:
77
本问题可以用动态规划求解。 给定一个有序序列 1 ... n,为了根据序列构建一棵二叉搜索树。我们可以遍历每个数字 i,将该数字作为树根,1 ... (i 1) 序列将成为左子树,(i+1) ... n 序列将成为右子树。于是,我们可以递归地从子序列构建子树。 在上述方法中,由于根各自不同,每棵二叉 ...
分类:
其他好文 时间:
2020-02-01 13:02:07
阅读次数:
82
树结构专题 二叉树 几种典型运算 先序非递归 中序非递归 — 记忆区别 1 后序非递归 中序遍历的二叉树线索化 — 记忆 二叉搜索树 二叉搜索树基本操作 — 记忆 二叉树的路径最大和 知识点和代码均学习于Acwing: https://www.acwing.com/activity/ ...
分类:
其他好文 时间:
2020-02-01 12:50:54
阅读次数:
68
B树的介绍 B-tree树即B树,B即Balanced,表示平衡。有人把B-tree翻译成B-树,容易让人产生误解。会认为B-树是一种树,而B树又是另一种树。实际上,B-tree就是指的B树。 B+树的介绍 B+树是B树的变体,也是一种多路搜索树 ...
分类:
其他好文 时间:
2020-02-01 12:45:09
阅读次数:
71
面试题54:二叉搜索树的第k个结点 题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。 例如,图中的二叉搜索树,按节点值大小顺序,第三大节点的值是4. 二叉搜索树的节点定义 问题分析 二叉搜索树中序遍历的结果是顺序的。我们可以设置一个全局变量index,对二叉搜索树进行中序遍历时,每遍历一个结 ...
分类:
其他好文 时间:
2020-01-31 23:07:10
阅读次数:
103
面试题33:二叉搜索树的后序遍历序列 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 例如,输入数组{5、7、6、9、11、10、8},则返回true,因为这个整数序列是下图二叉搜索树的后序 ...
分类:
其他好文 时间:
2020-01-31 21:13:36
阅读次数:
80
上一片文章我们讲过了,B 树索引是 MySql 常用引擎(InnoDB,MyISAM)的索引。 提出问题 什么是 B 树,它有什么特性那?B+ 树与 B 树有什么区别?我们平常用的二叉搜索树的时间复杂度不是 LogN 吗?难道不够优秀吗? 解决问题 预备知识 磁盘 IO:系统读取磁盘是将磁盘的基本单 ...
分类:
数据库 时间:
2020-01-31 12:12:54
阅读次数:
77
验证二叉搜索树。题目即是题意。二叉搜索树的特性是对于每个node而言,他的左子树上任意节点都比他自身小,右子树上任意节点都比他自身大。这个题也是有两种做法,迭代和递归。时间空间复杂度都是O(n)。例子, Example 1: 2 / \ 1 3 Input: [2,1,3] Output: true ...
分类:
其他好文 时间:
2020-01-31 10:43:30
阅读次数:
66
二叉搜索树的范围和。题意是给一个二叉搜索树和一个范围(L, R),请输出二叉搜索树里面所有node值介于L和R之间的node值的加和(sum)。例子, Example 1: Input: root = [10,5,15,3,7,null,18], L = 7, R = 15 Output: 32 E ...
分类:
其他好文 时间:
2020-01-30 10:09:53
阅读次数:
66
二叉树,每个节点键值大于左孩子,小于右孩子 和堆的区别,不一定是完全二叉树 可使用递归实现 存储键值对,可高效地实现插入、查找、删除 查找 插入 删除 普通数组 O(n) O(n) O(n) 顺序数组 O(logn) O(n) O(n) 二分搜索树 O(logn) O(logn) O(logn) 遍 ...
分类:
编程语言 时间:
2020-01-29 18:19:54
阅读次数:
86