给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 特判不为空过后,一定要马上判断root是否等于p或q ...
分类:
其他好文 时间:
2021-06-09 10:30:45
阅读次数:
0
二叉树遍历 若将二叉树分为根节点,左子树,右子树三部分,则前中后序便对应根节点的访问次序。 1 前序遍历 先访问根节点,然后前序遍历左子树,再前序遍历右子树。 2 中序遍历 从根节点开始,先中序遍历左子树,然后访问根节点,再中序遍历右子树,整个访问次序为从左到右。 3 后序遍历 从根节点开始,从左到 ...
分类:
其他好文 时间:
2021-06-08 22:35:30
阅读次数:
0
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 具体来讲就是加入以根结点为中心画一条垂线,则从垂线往左右两边移动时,遇到的节点的值一定一样。这里需要借助辅助函数来对比左右节点,所以要构建辅助函数。 /** * Definition for a bina ...
分类:
其他好文 时间:
2021-06-07 19:58:23
阅读次数:
0
顺序存储二叉树详解 说明 顺序存储二叉树,即将一颗完全二叉树按照从上到下,从左到右的顺序存储到一个数组中,因为数组是顺序存储的结构,因此称为顺序存储二叉树 给二叉树中各节点用 n 编号,从零开始,一直到最后 一个节点,对应于数组位置 假设当前节点的编号为 n ,那么当前节点的左子节点编号为 2 * ...
分类:
其他好文 时间:
2021-06-06 19:48:20
阅读次数:
0
前言——什么是完全二叉树 定义: 一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。 性质: 1、具有n个结点的完全二叉树的深度(注:[ ]表示向下取整) 2、 ...
分类:
其他好文 时间:
2021-06-05 18:21:49
阅读次数:
0
1、二叉查找树 首先,让我们先看一张图: 从图中可以看到,我们为 user 表(用户信息表)建立了一个二叉查找树的索引。 图中的圆为二叉查找树的节点,节点中存储了键(key)和数据(data)。键对应 user 表中的 id,数据对应 user 表中的行数据。 二叉查找树的特点就是任何节点的左子节点 ...
分类:
其他好文 时间:
2021-06-02 20:13:17
阅读次数:
0
重写hashCode和equals (1)向Map集合中存,以及从Map集合中取,都是先调用key的hashCode方法,然后调用equals方法! equals方法有可能调用,也有可能不调用 往里面存的时候会先调用Hashcode方法,得到Hash值 拿put(k,v)举例,什么时候equals不 ...
分类:
其他好文 时间:
2021-06-02 18:58:20
阅读次数:
0
https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/ 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inor ...
分类:
其他好文 时间:
2021-06-02 15:25:05
阅读次数:
0
#include <stdio.h> #include <stdlib.h> #include <time.h> #define max(a, b) ((a) > (b) ? (a) : (b)) typedef struct Node { int key, height; struct Node ...
分类:
其他好文 时间:
2021-06-02 12:24:05
阅读次数:
0
什么是索引? 所谓的索引,就是帮助 MySQL 高效获取数据的排好序的数据结构。因此,根据索引的定义,构建索引其实就是数据排序的过程。 平时常见的索引数据结构有: 二叉树 红黑树 哈希表 B Tree 谈谈一个潜在的误区 我们首先需要澄清一点:MySQL 跟 B+ 树其实没有直接的关系,真正与 B+ ...
分类:
数据库 时间:
2021-06-02 12:11:17
阅读次数:
0