[leetcode]Binary Tree Level Order Traversal II
2015-07-13 16:07
387 查看
#include<iostream> #include<list> #include<queue> #include<vector> using namespace std; struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int value):val(value),left(NULL),right(NULL){}; }; class Solution { public: void fun(TreeNode* root) { deque<TreeNode*>result; vector<vector<int>>talres; vector<int>res; if(!root) return; TreeNode* cur=root; result.push_back(cur); while(!result.empty()) { res.push_back(result.front()->val); if(result.front()->left) result.push_back(result.front()->left); if(result.front()->right) result.push_back(result.front()->right); result.pop_front(); } for(auto i:res) { cout<<i<<' '; } cout<<endl; } void level(TreeNode* root) { deque<TreeNode*>resultnode; deque<TreeNode*>resnode; vector<vector<int>>resultdata; vector<int>resdata; TreeNode* cur=root; resnode.push_back(cur); while(!resnode.empty()) { while(!resnode.empty()) { resdata.push_back(resnode.front()->val); if(resnode.front()->left) resultnode.push_back(resnode.front()->left); if(resnode.front()->right) resultnode.push_back(resnode.front()->right); resnode.pop_front(); } resultdata.push_back(resdata); resdata.clear(); swap(resnode,resultnode); } reverse(resultdata.begin(),resultdata.end()); for(auto i:resultdata) for(auto j:i) cout<<j<<' '; cout<<endl; } }; void main() { TreeNode* node1=new TreeNode(1); TreeNode* node2=new TreeNode(2); TreeNode* node3=new TreeNode(3); TreeNode* node4=new TreeNode(4); TreeNode* node5=new TreeNode(5); TreeNode* node6=new TreeNode(6); TreeNode* node7=new TreeNode(7); node1->left=node2; /*node1->right=node3; node2->left=node4; node2->right=node5; node3->left=node6; node3->right=node7;*/ node2->left=node3; node3->right=node4; node1->right=node5; Solution solution; solution.fun(node1); solution.level(node1); }
相关文章推荐
- CA证书应用二:制作带数字签名的PDF文档
- PropertyPlaceholderConfigurer的用法
- cell 动画效果之一
- php比较两个字符串长度的方法
- HDU 4248 (DP + 组合数)
- 消除App启动时候的白屏
- java注解
- 技术之路
- delphi -- 进制转换 函数表
- 简单字符串模式匹配算法的C++实现
- UI基础之----触摸事件
- Ubuntu 安装 CollabNet Subversion Edge 5.0 (SVN)
- 写在前面(一些感想及纪念今天正式开始写博客)
- iOS 支付宝 集成
- Scala入门--集合的使用及对集合操作的函数的使用
- MonkeyTalk的Pro App Restart、多设备控制、程序控制
- Highcharts实现圆角柱形图
- rac_生产库日志组损坏处理
- zip拉链
- android中handler用法总结