[LeetCode] Binary Tree Level Order Traversal
来源:互联网 发布:加工中心圆弧编程100例 编辑:程序博客网 时间:2024/06/03 20:16
class Solution {public: vector<vector<int> > levelOrder(TreeNode *root) { vector<int> a;//记录所有层的val vector<TreeNode*> tnode; vector<vector<int> > result; if(root == NULL) return result; tnode.push_back(root); int begin = 0,end; while(begin < tnode.size()){ end = tnode.size(); a.clear(); while(begin < end){//记录一层的val TreeNode* node = tnode[begin]; a.push_back(node -> val); if(node -> left != NULL)//记录下一层的TreeNode* tnode.push_back(node -> left); if(node -> right != NULL) tnode.push_back(node -> right); begin ++; } result.push_back(a); } return result; }};
Binary Tree Level Order Traversal II
跟上面基本一样,只是返回结果需要翻转下即可
class Solution {public: vector<vector<int> > levelOrderBottom(TreeNode *root) { vector<int> a;//记录所有层的val vector<TreeNode*> tnode; vector<vector<int> > result; if(root == NULL) return result; tnode.push_back(root); int begin = 0,end; while(begin < tnode.size()){ end = tnode.size(); a.clear(); while(begin < end){//记录一层的val TreeNode* node = tnode[begin]; a.push_back(node -> val); if(node -> left != NULL)//记录下一层的TreeNode* tnode.push_back(node -> left); if(node -> right != NULL) tnode.push_back(node -> right); begin ++; } result.push_back(a); } return vector<vector<int> >(result.rbegin(),result.rend()); }};
下面是采用递归的方法进行遍历
class Solution {public: vector<vector<int> > result; void levelTra(TreeNode *root,int level){ if(root == NULL) return; if(result.size() == level){ vector<int> v; result.push_back(v); } result[level].push_back(root -> val); levelTra(root -> left,level + 1); levelTra(root -> right,level + 1); } vector<vector<int> > levelOrderBottom(TreeNode *root) { levelTra(root,0); return vector<vector<int> >(result.rbegin(),result.rend()); }};
0 0
- LeetCode[Tree]: Binary Tree Level Order Traversal
- *(leetcode) Binary Tree Level Order Traversal (tree)
- [leetcode][tree] Binary Tree Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal
- LeetCode: Binary Tree Zigzag Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal
- [LeetCode]Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- Oracle创建存储过程,创建成功,却编译未通过
- Android工作笔记_点击EditText以外的地方关闭软键盘的方法
- Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
- 1025 选菜
- OC中ARC学习概念
- [LeetCode] Binary Tree Level Order Traversal
- PHP 日期格式化和日期计算以及获取当前周、月头尾日期
- nginx虚拟主机实现原理
- Ubuntu14.04 下安装Matlab_R2013a 记录
- Django官方文档----编写自己的Django程序之第一步
- 笔记1
- adb工具环境配置和操作命令详解
- 把Android API文档的颜色改成不易疲劳的绿豆沙颜色
- HDU 5023 A Corrupt Mayor's Performance Art