Invert a binary tree. Example: Input: Output: 题目大意: 翻转一个二叉树的左右子树。 理 解: 若当前子树为空,则返回空树;若当前子树为孤节点,则返回该节点。 递归获得根节点左右子树。交换根节点的左右子树。 代 码 C++: 运行结果: 执行用时 :4 ...
分类:
其他好文 时间:
2019-06-13 20:52:15
阅读次数:
124
一、定义 二叉排序树 又称作 二叉查找树 ,它是一种对排序和查找都很有用的特殊二叉树。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)它的左、右子 ...
分类:
编程语言 时间:
2019-06-12 09:21:22
阅读次数:
140
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest l ...
分类:
其他好文 时间:
2019-06-09 18:26:42
阅读次数:
100
题意:给一棵n(1≤n≤200000个叶子的二叉树,可以交换每个点的左右子树,要求前序遍历叶子的逆序对最少。 算法见注释 cpp include define ll long long using namespace std; const int N=5e6+6; int n,tot; int lc ...
分类:
其他好文 时间:
2019-06-07 22:35:33
阅读次数:
109
题目描述: 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 思路分析: 首先要明确平衡二叉树的定义。平衡二叉是左右子树的高度差小于等于1,且左右子树都为平衡二叉树。这里就存在一个递归判断左右子树是否为平衡二叉树的操作。可以根据之前求二叉树的高度问题来求解,首先求得当前树的左右子树高度,若满足高度差小 ...
分类:
其他好文 时间:
2019-06-01 19:41:21
阅读次数:
89
前面主要介绍了AVL的基本概念与结构,下面开始详细介绍AVL的实现细节; AVL树实现的关键点 AVL树与二叉搜索树结构类似,但又有些细微的区别,从上面AVL树的介绍我们知道它需要维护其左右节点平衡,实现AVL树关键在于标注节点高度、计算平衡因子、维护左右子树平衡这三点,下面分别介绍; 标注节点高度 ...
分类:
其他好文 时间:
2019-05-25 12:36:12
阅读次数:
94
二叉搜索树(Binary Search Tree) 二叉搜索树是一种二叉树,子结点数量上限为2;为了方便搜索,结点是有序的,左结点的key不大于父节点,右节点的key不小于父节点,且左右子树也是二叉搜索树。 下面是一个二叉搜索树的样图,来自维基 一棵树一般都要提供一些函数,例如遍历,搜索,最大最小值 ...
分类:
其他好文 时间:
2019-05-19 23:25:04
阅读次数:
146
【题目】 平衡二叉树的性质为:要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过1。给定一棵二叉树的头节点head,判断这棵二叉树是否为平衡二叉树 【要求】 如果二叉树的节点数为N,要求时间复杂度为O(N) 【分析】 平衡二叉树要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超 ...
分类:
其他好文 时间:
2019-05-18 14:02:20
阅读次数:
133
第五章——树(生命不息,种树不止) 无序树:树中任意节点的子结点之间没有顺序关系,这种树称为无序树,也称为自由树; 有序树:树中任意节点的子结点之间有顺序关系,这种树称为有序树; 二叉树:每个节点最多含有两个子树的树称为二叉树; 完全二叉树 满二叉树 霍夫曼树:带权路径最短的二叉树称为哈夫曼树或最优 ...
分类:
其他好文 时间:
2019-05-05 01:16:57
阅读次数:
137
1 public void Mirror(TreeNode root) { 2 // 如果根节点为空,则直接返回 3 if (root == null) { 4 return; 5 } 6 // 如果根节点两边都为空,则直接返回 7 if (root.left == null && ... ...
分类:
其他好文 时间:
2019-04-27 13:19:40
阅读次数:
112