思路:要判断一颗二叉树是否对称,要判断一下几点,可以用递归来实现: 判断一颗二叉树是不是对称的,等价于判断其左右子树是不是镜像对称的 判断镜对称像即判断对称的位置上的元素是不是相等 两个节点A和B对称等价于: 这两个节点上存储的值相等 节点A的左子树节点和节点B的右子树上的节点是对称的 节点A的右子 ...
分类:
其他好文 时间:
2018-10-15 18:30:23
阅读次数:
198
一、伸展树的介绍 伸展树(Splay Tree)是一种二叉排序树,它能在O(log n)内完成插入、查找和删除操作。它由Daniel Sleator和Robert Tarjan创造。 (1) 伸展树属于二叉查找树,即它具有和二叉查找树一样的性质:假设x为树中的任意一个结点,x节点包含关键字key,节 ...
分类:
其他好文 时间:
2018-10-14 16:45:39
阅读次数:
181
是真的染色,把不同预约看做不同颜色,现在问题就是一个区间内不同颜色的数量,这个分块线段树都能做吧(不考虑复杂度用莫队也行) 注意,线段树的最大边界必须是定值,不能随输入改变(一开始懒得离线动态更新右端点然后节点的编号就串了) 注意数组大小,因为same和tag数组都是针对线段树节点设置的,所以其数组 ...
分类:
其他好文 时间:
2018-10-14 11:37:58
阅读次数:
102
144_二叉树的前序遍历 [TOC] 描述 给定一个二叉树,返回它的 前序 遍历。 示例: 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 方法一:递归 Java 代码 复杂度分析: 时间复杂度:$O(n)$,其中,$n?$ 为二叉树节点的数目 空间复杂度:$O(n)$ 方法二:非递归(使用栈) ...
分类:
其他好文 时间:
2018-10-12 01:27:55
阅读次数:
176
1 function TreeNode(val) { // 树节点构造方式 2 this.val = val; 3 this.left = null; 4 this.right = null; 5 } 6 7 function generateTree() { 8 let root = new Tr... ...
分类:
编程语言 时间:
2018-10-09 18:13:44
阅读次数:
185
AVL树的介绍 AVL树是高度平衡的而二叉树。它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。 上面的两张图片,左边的是AVL树,它的任何节点的两个子树的高度差别都<=1;而右边的不是AVL树,因为7的两颗子树的高度相差为2(以2为根节点的树的高度是3,而以8为根节点的树的高度是1)。 ...
分类:
编程语言 时间:
2018-10-07 14:42:50
阅读次数:
175
您将获得一个包含N个节点的树。树节点的编号从1到Ñ。每个节点都有一个整数权重。 我们会要求您执行以下操作: uvk:询问从节点u到节点v的路径上的第k个最小权重 输入 在第一行中有两个整数Ñ和中号。(N,M <= 100000) 在第二行中有N个整数。第i个整数表示第i个节点的权重。 在接下来的N- ...
分类:
其他好文 时间:
2018-10-07 11:28:57
阅读次数:
183
"G.Gangsters in Central City" 题意:一棵树,节点1为根,是水源。水顺着边流至叶子。该树的每个叶子上有房子。有q个询问,一种为房子u被强盗入侵,另一种为强盗撤离房子u。对于每个询问,要求给出最小的阀门数来阻断水流向强盗所在房子,且在阀门数最小的情况下求最小的误伤房子数(即 ...
分类:
其他好文 时间:
2018-10-03 23:42:59
阅读次数:
195
题目链接 题目描述 平衡二叉树,顾名思义就是一棵“平衡”的二叉树。在这道题中,“平衡”的定义为,对于树中任意一个节点,都满足左右子树的高度差不超过 d. 空树的高度定义为0,单个节点的高度为1,其他情况下树的高度定义为根节点左右子树高度最大值 + 1. 一棵在高度上平衡的树,节点数可能不平衡,因此再 ...
分类:
其他好文 时间:
2018-10-02 20:26:17
阅读次数:
116
概述 点分树代表了树上的所有路径,如同分治代表了序列中的所有区间。在点分树节点上统计经过这个点的树链的答案。 距离k联通块修改/询问 此类问题的做法是通用的。 对每个点分树结点开两棵动态开点线段树,一棵记录以结点到自己的距离为关键字的结点信息,另一棵记录以结点到点分树父亲的距离为关键字的结点信息。 ...
分类:
其他好文 时间:
2018-09-25 21:55:17
阅读次数:
170