二叉树——236. 二叉树的最近公共祖先 题目: 思路: 后续遍历+DFS:具体思路参照了题解中的解析 代码: class Solution { public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* ...
分类:
其他好文 时间:
2021-04-09 13:25:04
阅读次数:
0
用二叉查找树在磁盘上存储数据会面临两个问题: 1、二叉树只有两个分支,数据量非常大的时候,树的高度会很大,不利于数据的查找 2、每次仅若读取一条信息,会造成大量空间的浪费 因此需要把树的高度降低,并且尽量是的每次磁盘读取都能够得到最多的信息 为解决这两个问题,B树应运而生 B树是一种多路平衡树,或者 ...
分类:
其他好文 时间:
2021-04-09 13:24:46
阅读次数:
0
我的 CSDN 博客:blog.csdn.net/gdutxiaoxu我的掘金:juejin.im/user/220747…github: github.com/gdutxiaoxu/微信公众号:程序员徐公 前言 说到树的四种遍历方式,可能大家第一时间都会想到它的四种遍历方式,并快速说了它的特点。 ...
分类:
编程语言 时间:
2021-04-09 13:01:00
阅读次数:
0
二叉树——102. 二叉树的层序遍历 题目: 思路: 就是层序遍历,一层层扫下去,然后通过队列去实现,一个队列先暂存这一层的所有结点,然后另一个队列通过push_back的方式,实现从左到右的访问。 代码: class Solution { public: vector<vector<int>> l ...
分类:
其他好文 时间:
2021-04-08 12:59:26
阅读次数:
0
翻转二叉树,2种方案,递归与非递归 (个人更喜欢非递归的方案,大多数情况下非递归的迭代都拥有更低的时空间复杂度,当然也存在 傅里叶快速变换那种小而美的递归方案,见仁见智吧) 1. 递归(深度优先遍历方案) 此方案中,我们会直接从最顶层父节点,一路递归至最左侧叶子节点, 然后再递归至其父节点的右孩子, ...
分类:
其他好文 时间:
2021-04-07 11:36:18
阅读次数:
0
splay、treap、set、红黑树、avl、B树 splay: 平衡二叉树,经过左旋和右旋操作,不会改变中序遍历的顺序。维护的是二叉树的一个中序序列,同时调整树的高度。 在插入和查询操作x的时候,都会把x变到树根的位置。 核心:每操作一个节点,均将该节点旋转到树根。一个点用到的话,之后的话很可能 ...
分类:
其他好文 时间:
2021-04-07 10:41:01
阅读次数:
0
序言 二叉树存在的问题? 二叉树极端情况会退化为链表 平衡二叉树存在的问题? 平衡二叉树解决了存在线性链表的问题,数据查询的效率好像也还可以,基本能达到O(log2(n)), 那为什么mysql不选择平衡二叉树作为索引存储结构,他又存在什么样的问题呢? 树的高度可能会很高 那有没有一种结构能够解决二 ...
分类:
数据库 时间:
2021-04-06 15:18:24
阅读次数:
0
编号104:二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 思路 递归实现:先找左子树的最大深度;再找 ...
分类:
其他好文 时间:
2021-04-05 12:45:42
阅读次数:
0
A.遍历二叉树是以一定的规则将二叉树中的结点排列成一个线性序列(DLR、LDR、LRD、DRL、RLD、RDL),这实质上是对非线性结构进行线性化操作。 B.将二叉树线索化能够不用递归,通过找到后继来线性地遍历二叉树 C.前驱、后继的信息是在动态遍历的过程中才知道的,需要保存下来,而n个结点的二叉链 ...
分类:
其他好文 时间:
2021-04-05 12:06:37
阅读次数:
0
二叉树的遍历 前序遍历 LeetCode.144. 二叉树的前序遍历 二叉树的前序/中序/后序遍历的非递归描述一般适合用深度优先搜索 (DFS, depth-first search), 并使用栈的数据结构. 版本1 递归 from typing import List class Node: de ...
分类:
其他好文 时间:
2021-04-05 11:47:20
阅读次数:
0