LeetCode:Binary Tree Level Order Traversal II
2015-11-18 14:37
337 查看
Binary Tree Level Order Traversal II
Total Accepted: 60177 TotalSubmissions: 188407 Difficulty: Easy
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree
{3,9,20,#,#,15,7},
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [15,7], [9,20], [3] ]
code:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<vector<int>> levelOrderBottom(TreeNode* root) { vector<vector<int>> ret; if(NULL == root) return ret; queue<TreeNode *> q[2]; // 队列实现层次遍历,需要两个 stack<vector<int>> s; // 保存中间结果 int cur=0; q[cur].push(root); while(!q[cur].empty()) { vector<int> tmp; while(!q[cur].empty()) { TreeNode *p = q[cur].front(); tmp.push_back(p->val); if(p->left) q[cur^1].push(p->left); // 交替入队 if(p->right) q[cur^1].push(p->right); q[cur].pop(); } cur^=1; s.push(tmp); } while(!s.empty()) { ret.push_back(s.top()); s.pop(); } return ret; } };
相关文章推荐
- Messenger传送数据到后台进行操作
- POJ_3009 Curling 2.0
- MySql可视化工具MySQL Workbench使用教程
- Android性能分析
- MyEclipse中Tomcat控制台打印乱码解决方案
- say say Map
- android adb 使用初阶
- mac上idea的常用快捷键
- 用Kibana和logstash快速搭建实时日志查询、收集与分析系统
- Android实战技巧之六:PreferenceActivity使用详解
- Spring Test 整合 JUnit 4 使用总结
- Jquery各版本下载
- [置顶] Android中_TextView属性的XML详解 包括单行显示等等。
- wkid对应
- JavaScript基础——客户端检测
- 【智能路由器】开篇
- UILabel的简单使用介绍
- Android侧滑菜单
- 转!!存储过程和触发器
- 正则表达式实现将html文本转换为纯文本格式(将html字符串转换为纯文本方法)