判断树1中是否有树2 思路: 采用递归的方法,先序遍历整棵树,判断当前的树是否有树2,没有的话判断左右子树是否有。 代码: 合并有序链表 思路: 采用递归的方式,每一次都是小的那个节点作为头结点,并且将头结点连接到已排好的节点。 代码: 旋转打印二维数组 思路: 将打印数组一圈作为一个循环,每次循环 ...
分类:
编程语言 时间:
2020-02-24 00:25:31
阅读次数:
71
重建二叉树 "LeetCode 105" 首次需要知道前序遍历和中序遍历的性质。 解题思路如下:首先使用前序比遍历找到根节点,然后使用中序遍历找到左右子树的范围,再分别对左右子树实施递归重建。 本题的难点就是如何在前序遍历中找到左右子树的范围以分别重构,这可以根据中序遍历中的左右子树的数量来分辨。使 ...
分类:
其他好文 时间:
2020-02-23 22:01:08
阅读次数:
53
一、平衡二叉树的定义 1. 使树的高度在每次插入元素后仍然能保持O(logn)的级别 2. AVL仍然是一棵二叉查找树 3. 左右子树的高度之差是平衡因子,且值不超过1 二、平衡二叉树的基本操作 1. 查找操作 查找方法和二叉查找树一致 2. 插入操作 左旋(Left Rotation) 右旋(Ri ...
分类:
其他好文 时间:
2020-02-20 22:28:20
阅读次数:
83
38. 二叉树的深度 题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 1 class Solution { 2 public: 3 // 前序递归遍历,分别统计左右子树的高度 4 int preOrder(TreeN ...
分类:
其他好文 时间:
2020-02-19 23:41:34
阅读次数:
84
「Luogu P5368 [PKUSC2018]真实排名」的题解 ...
分类:
其他好文 时间:
2020-02-18 18:43:36
阅读次数:
76
Tree 星星为什么这么渺小?那是因为他们把自己放的太高了! 背景:简单了解二叉树、平衡树、红黑树、B树和B+树之间的特点和差异。 1. 二叉排序树的特点 a、树的左边节点比根节点小,右边节点比根节点大; b、左右子树也都是二叉排序树; c、但是,在一些特殊情况下,比如插入数据是有序的,就会发生退化 ...
分类:
其他好文 时间:
2020-02-17 12:09:48
阅读次数:
53
二叉搜索树 二叉搜索树是这样的二叉树,树中所有结点满足:左子树所有结点值小于根结点,右子树所有结点值大于根结点。 验证方法 首先想到的是使用递归方法,如果满足前驱结点 < 根结点 < 后继结点,那么继续向下分别对左右子树进行递归,直到有不满足的情况出现,则返回false。还有一种递归想法(参考题解) ...
分类:
其他好文 时间:
2020-02-15 18:41:01
阅读次数:
84
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 进阶: 如果二叉搜索树经常被修改(插入/删除操作)并且你需要频繁地查找第 k 小的值,你将如何优化 kthSmallest 函数? 来 ...
分类:
其他好文 时间:
2020-02-15 11:49:22
阅读次数:
89
题目 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 返回如下的二叉树: 思路:递归 同 "【剑指Offer】面试题07. 重建二叉树" 关键在与正确定位左右子树范围。 代码 另一种写法 修改求根节点索引。 ...
分类:
其他好文 时间:
2020-02-13 21:00:35
阅读次数:
59
二叉树 总结例题 1 从中序与后序遍历序列构造二叉树 给定二叉树的后序遍历和二叉树的中序遍历 想法: 1. 先根据后序遍历的最后一个元素构造根节点 2. 寻找根节点在中序遍历中的位置 3. 递归构建根节点的左右子树 总结: 1. 返回类型为pointer,异常情况可以直接返回NULL 2. 上面的代 ...
分类:
其他好文 时间:
2020-02-08 20:52:55
阅读次数:
95