Binary Tree Level Order Traversal
2015-06-01 21:50
211 查看
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
queue<TreeNode*> Q1,Q2;
vector<int>level;
vector<vector<int>>result;
TreeNode* node;
int i=0;
if(root==NULL) return result;
Q1.push(root);
while(!Q1.empty())
{
while(!Q1.empty())
{
node=Q1.front();
level.push_back(node->val);
Q1.pop();
if(node->left!=NULL)
Q2.push(node->left);
if(node->right!=NULL)
Q2.push(node->right);
}
result.push_back(level);
level.clear();
swap(Q2,Q1);
}
return result;
}
};
层序遍历,需要两层循环。 容器可以用vector直接清零。SWAP可以交换队列
public:
vector<vector<int>> levelOrder(TreeNode* root) {
queue<TreeNode*> Q1,Q2;
vector<int>level;
vector<vector<int>>result;
TreeNode* node;
int i=0;
if(root==NULL) return result;
Q1.push(root);
while(!Q1.empty())
{
while(!Q1.empty())
{
node=Q1.front();
level.push_back(node->val);
Q1.pop();
if(node->left!=NULL)
Q2.push(node->left);
if(node->right!=NULL)
Q2.push(node->right);
}
result.push_back(level);
level.clear();
swap(Q2,Q1);
}
return result;
}
};
层序遍历,需要两层循环。 容器可以用vector直接清零。SWAP可以交换队列
相关文章推荐
- mysql存储过程事务回滚
- 'nmake' 不是内部或外部命令,VCVARS32.BAT路径问题
- Phar文件
- Java设计模式——Singleton(单例)模式
- 解决mac使用svn: E170000: Unrecognized URL scheme for https://xxx错误
- 两个python小知识点
- Intellij14 配置androidannotations
- p2p,IP多播理清思路写程序
- struts2中拦截器与过滤器的区别
- Android中的Thread与AsyncTask的区别
- android蓝牙框架bluedroid之sbc编码
- c语言结构体自引用和互引用原理及示例程序
- 开放的智力3:模式切换
- Mybatis使用之SpringMVC整合
- KNN分类器及实现
- cdoj 30 最短路 flyod
- Go随机数
- 实现服务器端多次写,客户端多次读。
- BP神经网络的数学原理及其算法实现
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面