题意:给定一棵二叉树,返回按zigzag层次遍历的结果
思路:
还是跟前面的Binary Tree Level Order Traversal的思路一样
即从上往下按层遍历二叉树,将每一层的节点存放到该层对应的数组中
最后将得到的总数组中奇数层(从0层开始计数)的子数组reverse一下就可以了
复杂度:时间O(n),空间O(n)...
分类:
其他好文 时间:
2014-05-15 15:15:50
阅读次数:
374
题意:给定一棵二叉树,返回按层遍历的结果
思路1:bfs,定义一个新的struct,记录指针向节点的指针和每个节点所在的层
复杂度1:时间O(n),空间O(n)
思路2:dfs
递归函数:
void levelOrder(TreeNode *root, int level, vector<vector >&result)
表示把根为root的树按层存放在result中,其中level表示当前的层数
复杂度2:时间O(n),空间O(n)
相关题目:...
分类:
其他好文 时间:
2014-05-15 14:46:06
阅读次数:
355
今晚参加了uc的实习生笔试,越发自己基础掌握还不牢固,看起来又免不了被刷了。暑假还是好好巩固基础吧,校招再战!下面是一些还记得的题目,重做一遍,也当做是练习。前面有8道java单选题,还有几道多选题,多选涉及到了快排、二叉树遍历等。有五道简答题,题目不难,也是很常考的题目,有准备的应该都很熟悉。1....
分类:
其他好文 时间:
2014-05-15 07:33:44
阅读次数:
231
题目链接:10312 - Expression Bracketing
题意:有n个x,要求分括号,判断非二叉表达式的个数。
思路:二叉表达式的计算方法就等于是Catalan数的,那么只要计算出总数,用总数减去二叉表达式个数,得到的就是非二叉表达式的个数。那么计算方法是什么呢。
看题目中的图,对于n = 4的情况,可以分为这几种情况来讨论:
四个1, 一个2两个1,一个3一个1,一个4,对应...
分类:
其他好文 时间:
2014-05-15 07:11:23
阅读次数:
218
题意:从底往上按层遍历二叉树
思路:
思路和Binary Tree Level Order Traveral 一样,
即从上往下按层遍历二叉树,将每一层的节点存放到该层对应的数组中
最后将得到的数组倒转一下就可以了
按层遍历二叉树可用bfs,也可用dfs,但都要记录节点所在的层
复杂度:时间O(n), 空间O(n)...
分类:
其他好文 时间:
2014-05-15 06:32:14
阅读次数:
278
一步一步实现平衡二叉树,并对AVL树的旋转操作进详细解释...
分类:
其他好文 时间:
2014-05-15 06:27:41
阅读次数:
215
HNOI2014总结
省选成绩出来了,170分,其中第一天100分,第二天70分,果然和感觉一样,总会有几道题会跪,幸好这才是高一。
Day1,一看到第三题就感觉这道题比第一二题好做,但是题目理解错了TAT,一开始竟然脑残到以为这颗树只能是二叉树,于是浪费了一个小时写了一个错误的程序,在检查的时候才发现不一定是二叉树,而且时间只有一个小时了,所以打完50分的算法后就没有去打正解,day1被爆...
分类:
其他好文 时间:
2014-05-14 23:51:42
阅读次数:
536
红黑树是一个二叉搜索树,具有如下规则:
每个节点不是红色就是黑色。根节点必须为黑色。如果节点为红,其子节点必须为黑,父子节点不得同时为红。任一节点至NULL(NULL为黑色)的任何路径,所含黑节点数必须相同。
根据规则4,新增节点必须为红。
根据规则3,新增节点的父节点必须为黑。
因为新增节点必须是红,那么只有在父节点不为黑的时候才需要调整,父节点为黑则无需调整。
着...
分类:
其他好文 时间:
2014-05-14 15:29:28
阅读次数:
287