二叉树定义:每个结点最多有两个子树的树struct TreeNode { int val;
TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL),
right(NULL) {} };...
分类:
其他好文 时间:
2014-05-26 23:43:52
阅读次数:
351
出题:数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数字;分析:解法1:首先对数组进行排序,时间复杂度为O(NlogN),由于有一个数字出现次数超过了数组的一半,所以如果二分数组的话,划分元素肯定就是这个数字;解法2:首先创建1/2数组大小的Hash
Table(哈希表可以替代排序时间,...
分类:
其他好文 时间:
2014-05-26 23:23:48
阅读次数:
453
二叉树非递归访问,借助一个栈,来模拟递归调用过程。struct TreeNode { char
val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL),
right(NULL...
分类:
其他好文 时间:
2014-05-26 22:25:25
阅读次数:
353
红黑树的定义
红黑树是满足如下条件的二叉树:(1)每个结点都有颜色标记,要么是黑色,要么是红色(2)根结点是黑色的(3)叶子结点是黑色的(按《算法导论》和其他文献的说法是,这里的叶子结点指的是空结点)(4)红色结点的孩子必须是黑色的(5)从根结点到每一个叶子结点的路径上,黑色结点的个数相同。(...
分类:
其他好文 时间:
2014-05-26 12:14:29
阅读次数:
386
原题地址:https://oj.leetcode.com/problems/validate-binary-search-tree/题意:检测一颗二叉树是否是二叉查找树。解题思路:看到二叉树我们首先想到需要进行递归来解决问题。这道题递归的比较巧妙。让我们来看下面一棵树:
...
分类:
编程语言 时间:
2014-05-26 10:48:19
阅读次数:
291
二叉树是一种特殊的树。二叉树的特点是每个结点最多有两个儿子,左边的叫做左儿子,右边的叫做右儿子,或者说每个结点最多有两棵子树。更加严格的递归定义是:二叉树要么为空,要么由根结点、左子树和右子树组成,而左子树和右子树分别是一棵二叉树。
下面这棵树就是一棵二叉树。
二叉树的使用范围最广,一棵多叉树也可以转化为二叉树,因此我们将着重讲解二叉树。
二叉树中还有连两...
分类:
其他好文 时间:
2014-05-23 00:11:28
阅读次数:
301
注意:1、仅根据前序和后序无法构建唯一的二叉树;2、二叉树前序遍历,第一个数字总是树的根节点的值;3、中序遍历中,根节点的值在序列的中间,左子树的值子在根节点的值得左边,右字树的值在根节点的值得右边;4、思路:递归...
分类:
其他好文 时间:
2014-05-22 23:56:14
阅读次数:
408
树的路径长度树的路径长度是从树根到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。树的带权路径长度(weighted path
length of tree,wpl)结点的权值:在一些应用中,赋予树中结点的一个有某种意义的实数、结点的带权路径长度:结点到树根之间的路径...
分类:
其他好文 时间:
2014-05-21 19:02:14
阅读次数:
305
Xor Sum
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)
Total Submission(s): 7837 Accepted Submission(s): 3350
Problem Description
Zeus 和 Prometheu...
分类:
其他好文 时间:
2014-05-21 17:02:00
阅读次数:
160