1、平衡二叉树出现的原因 二叉排序树的弊端 数列:1,2,3,4,5,6 创建出来的二叉排序树为: 2、平衡二叉树概念 平衡二叉搜索树 AVL树 保证查询效率最高 一颗空树或者是一颗左右两颗子树的高度差的绝对值不超过1, 并且左右子树分别也是平衡二叉树的树 2.1、二叉树结点 // 树结点 priv ...
分类:
其他好文 时间:
2021-02-20 12:44:09
阅读次数:
0
题目 设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号。 每个节点都有一个分数(均为正整数),记第i个节点的分数为$d_i$,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下: subtree的 ...
分类:
其他好文 时间:
2021-02-01 12:24:58
阅读次数:
0
题意 将一个二叉树转换为它的镜像树 思路 很容易想到镜像树是要交换左右孩子,而且是递归式的,也就是说还要对它的左孩子和右孩子这么做。 本质是对遍历算法的理解,显然这里是用后序遍历比较合理的,后序遍历是左右根的顺序,也就是遍历到当前根结点的时候左右子树都已经遍历过也处理好了(翻转为镜像) 代码 cla ...
分类:
其他好文 时间:
2021-01-29 12:07:31
阅读次数:
0
剑指 Offer 32 - I. 从上到下打印二叉树 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu ...
分类:
其他好文 时间:
2021-01-06 11:58:50
阅读次数:
0
☆☆☆思路:剑指18.二叉树的镜像 方法1:递归。二叉树此类递归问题,要以根节点为目标点进行分析。 思路1:首先分别翻转根节点的左右子树,然后交换左右子树的位置即可。 思路2:也可以先交换左右子树的位置,然后再分别翻转根节点的左右子树。 方法2:BFS层序遍历 层序遍历树的所有节点,然后交换其左右节 ...
分类:
其他好文 时间:
2020-12-28 11:24:22
阅读次数:
0
题目描述 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例 1: 输入:[1,2,3] 1 / \ 2 3 输出:6 示例 2: 输入:[-10,9,20,null,nul ...
分类:
其他好文 时间:
2020-12-25 12:51:52
阅读次数:
0
题目 实现思路: 通过递归的思路来实现该过程。 步骤: 判断当前树是否为空。如果为空直接返回null,反之则执行下一步。 判断当前左右子树都为空时,直接返回该树。反之执行下一步 判断当前左右子树有一个不为空时, 当右子树不为空且左子树为空时,将左子树复制到右子树上。之后让左子树为空。 当右子树为空但 ...
分类:
其他好文 时间:
2020-12-18 13:17:04
阅读次数:
3
经过一段时间的数据结构与算法的学习,和学习了前人的经验,为了更好的指导自己(希望也能帮助到别人)之后数据结构与算法的学习,总结一下数据结构与算法学习的方法。以及推荐大家看看一套学习教程,有助于快速入门:https://4m.cn/7MHVd 一、记住数据结构,记住算法思想(是什么) 我觉得这个是数据 ...
分类:
编程语言 时间:
2020-12-04 11:16:07
阅读次数:
8
void copy(BiTree T,BiTree &NewT){ //复制树 if(T == NULL){ NewT = NULL; return; }else { NewT = new BiTNode; NewT->data = T->data; copy(T->lchild,NewT->lch ...
分类:
其他好文 时间:
2020-11-30 15:28:17
阅读次数:
2
一、首先是二叉树: 1)定义 2)前、中、后序遍历 二、二叉搜索树: 中序遍历是有序的 本身的定义也是递归的: 1)查找:复杂度 log2n (n表示数的节点个数) 极端情况,退化成链表,查找效率和链表一样 2)插入节点、删除节点也要会 三、平衡二叉树:左右子树都是平衡二叉树 1)2-3树 2)AV ...
分类:
其他好文 时间:
2020-11-07 17:44:46
阅读次数:
36