【题目】给定一棵二叉树的头节点head,已知所有节点的值都不一样,返回其中最大的且符合搜索二叉树条件的最大拓扑结构的大小。 【题解】 方法一:二叉树的节点数为N,时间复杂度为O(N2)的方法。 首先来看这样一个问题,以节点h为头的树中,在拓扑结构中也必须以h为头的情况下,怎么找到符合搜索二叉树条件的 ...
分类:
编程语言 时间:
2019-09-08 13:51:10
阅读次数:
160
知识摘要: 1.二叉搜索树(又叫:二叉排序树,二叉查找树): 遵循: Tree.left.val<Tree.val<Tree.right.val. 所以它的中序遍历一定是一个有序列。 2.其他一些树: 满二叉树:从上往下,除了叶子结点外,其他结点的左右子节点都存在。 完全二叉树:比满二叉树少几个叶子 ...
分类:
其他好文 时间:
2019-09-05 23:06:46
阅读次数:
91
【题目】二叉树可以用常规的三种遍历结果来描述其结构,但是不够直观,尤其是二叉树中有重复值的时候,仅通过三种遍历的结果来构造二叉树的真实结构更是难上加难,有时则根本不可能。给定一棵二叉树的头节点head,已知二叉树节点值的类型为32位整型,请实现一个打印二叉树的函数,可以直观地展示树的形状,也便于画出 ...
分类:
编程语言 时间:
2019-09-02 23:36:37
阅读次数:
98
对二叉树的节点来说,有本身的值域,有指向左孩子和右孩子的两个指针;对双向链表的节点来说,有本身的值域,有指向上一个节点和下一个节点的指针。在结构上,两种结构有相似性,现在有一棵搜索二叉树,请将其转换为一个有序的双向链表。 ...
分类:
编程语言 时间:
2019-09-01 23:44:54
阅读次数:
115
给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: G(0)=G(1)=1; G(n+1)=2(2n+1)G(n)/(n+2) class Solution { public: int numTrees(int n) { long G = 1; for(int i = ...
分类:
编程语言 时间:
2019-08-30 19:17:42
阅读次数:
150
概述 搜索二叉树在插入的数据是有序的时候会非常不平衡,几乎变成了线性结构,如插入数据顺序为10,20,30,40,50,那么该二叉树的结构会如下图所示,那么这样就和链表没啥区别,查找的时间复杂度就为O(n),而不是O(logN),为了以较快的时间搜索一颗树,我们就要保证这颗树的平衡性,也就是树的左右 ...
分类:
其他好文 时间:
2019-05-04 13:31:51
阅读次数:
168
递归返回子树的指针集合。作为 左子树或右子树。 从而构建整颗树。 结果:二叉树的输出有点丑 横向的,主要关注点,这是个搜索二叉树, 当前根节点的值大于左子树节点的值 当前根节点的值小于右子树节点的值 左右子树同样是二叉搜索树 cout << " " << endl ; ...
分类:
其他好文 时间:
2019-02-03 00:54:32
阅读次数:
195
内容: 1、平衡二叉树 2、典型搜索二叉树原理(AVL树、红黑树、SB树) 3、旋转 -- Rebalance 4、Java中红黑树的使用 1、平衡二叉树 2、典型搜索二叉树原理(AVL树、红黑树、SB树) 3、旋转 -- Rebalance 4、Java中红黑树的使用 ...
分类:
其他好文 时间:
2019-01-29 23:05:42
阅读次数:
150
今天主要讨论:哈希函数、哈希表、布隆过滤器、一致性哈希、并查集的介绍和应用。 今天主要讨论:哈希函数、哈希表、布隆过滤器、一致性哈希、并查集的介绍和应用。 题目一 题目一 认识哈希函数和哈希表 1、输入无限大 2、输出有限的S集合 3、输入什么就输出什么 4、会发生哈希碰撞 5、会均匀分布,哈希函数 ...
分类:
编程语言 时间:
2019-01-28 14:05:20
阅读次数:
204
思路: (1)搜索二叉树的结构就是二叉树的左右两个节点,所有左子节点的值小于右子节点的值,然后还要有一个lazy标志,用于lazy删除。 (2)搜索二叉树主要有一下几个操作:建立搜索二叉树;建立空树;查找x的位置;查找最大,最小值的位置; 插入节点,删除节点;打印二叉树; (3)建立搜索二叉树,不同 ...
分类:
其他好文 时间:
2018-11-30 15:48:12
阅读次数:
185