题意:给定一棵二叉树,返回按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
插头DP,多条回路求回路数。
可以当作模版来记。注重理解轮廓线。
#include
#include
#include
#include
using namespace std;
const int HASH=10007;
const int STATE=5000; //状态数
const int MAXD=15;
int code[MAXD],maze[MAXD][MAXD];...
分类:
其他好文 时间:
2014-05-15 11:23:33
阅读次数:
344
Problem Description:
Given a binary tree, determine if it is a valid binary search tree (BST).
Assume a BST is defined as follows:
The left subtree of a node contains only nodes with keys l...
分类:
其他好文 时间:
2014-05-15 11:22:21
阅读次数:
317
题意:从底往上按层遍历二叉树
思路:
思路和Binary Tree Level Order Traveral 一样,
即从上往下按层遍历二叉树,将每一层的节点存放到该层对应的数组中
最后将得到的数组倒转一下就可以了
按层遍历二叉树可用bfs,也可用dfs,但都要记录节点所在的层
复杂度:时间O(n), 空间O(n)...
分类:
其他好文 时间:
2014-05-15 06:32:14
阅读次数:
278
题意:中序遍历
思路:采用递归实现。因为函数声明是返回一个vector,所以每个子树返回的是该子树的中序遍历的结果
按照 左、根、右的次序把根和左右子树的vector合并起来就可以了...
分类:
其他好文 时间:
2014-05-15 06:21:09
阅读次数:
255
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
Binary Tree Preorder Traversal
Total Accepted: 17948 Total
Submissions: 51578
Given a binary tree, return the preorder tra...
分类:
其他好文 时间:
2014-05-15 04:37:26
阅读次数:
283
插头DP。
从左上角到右下角,每个格子都有Val,每个格子只能经过一次,可以不经过,求最大的分数之和。
#include
#include
#include
#include
using namespace std;
const int MAXD=15;
const int HASH=10007;
const int STATE=1000010;
int N,M;
int maz...
分类:
其他好文 时间:
2014-05-15 03:43:02
阅读次数:
175
1、Ring的基本概念
Ring是swfit中最重要的组件,用于记录存储对象与物理位置之间的映射关系,当用户需要对Account、Container、Object操作时,就需要查询对应的Ring文件(Account、Container、Object都有自己对应的Ring),Ring 使用Region(最近几个版本中新加入的)、Zone、Device、Partition和Replica来维护这些信...
分类:
其他好文 时间:
2014-05-14 15:22:15
阅读次数:
1213
今天再看这个题时,死活想不起这个单词是什么意思,查了字典都不知道,真晕了。
这个单词直译是颠倒顺序所形成的单词,实际上就是从集合中找出所有是由一组字母形成的那些单词,这种可以由很多组,即只要这组字母形成的字典中的单词多于1个,就要把这些单词输出出来。
怎么做呢?思路还是很简单的,要找出是由一组字母形成的单词,显然应该知道每一个单词是由哪些字母形成的,这当然可以建一个hash表,每次都比对has...
分类:
其他好文 时间:
2014-05-14 15:12:04
阅读次数:
296