LeetCode(107) Binary Tree Level Order Traversal II
2015-10-14 14:17
423 查看
题目
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},
return its bottom-up level order traversal as:
分析
与 LeetCode(103) Binary Tree Zigzag Level Order Traversal 以及 LeetCode(102) Binary Tree Level Order Traversal 本质相同的题目,只不过灵活调整结果返回格式罢了。AC代码
/** * 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) { //层次遍历,分层存储 if (!root) return vector<vector<int> >(); vector<vector<int> > ret; //定义两个队列,一个存储所有的父节点,另一个存储他们的子节点也就是子层 queue<TreeNode *> parents; parents.push(root); while (!parents.empty()) { //存储当前层的遍历结果 vector<int> tmp; //定义队列存储他们的子节点也就是子层 queue<TreeNode *> childs; while (!parents.empty()) { TreeNode *node = parents.front(); tmp.push_back(node->val); //弹出当前父节点 parents.pop(); if (node->left) childs.push(node->left); if (node->right) childs.push(node->right); } //存储当前层的遍历结果 ret.push_back(tmp); //遍历下一层 parents = childs; } //反转遍历结果 由下向上存储 reverse(ret.begin(), ret.end()); return ret; } };
GitHub测试程序源码
相关文章推荐
- 正则表达式,匹配文件名类型
- HLS 流媒体技术 笔记
- Error —— 打出log:finished with non-zero exit value 2
- 优秀程序员的18大法则-兄弟连IT教育
- 为什么全局描述符表GDT的第0项总是一个空描述符,而局部描述符表却不是这样?
- js 关键字 in 的使用方法
- 数组的处理
- mysql指定某行或者某列的排序
- C# sqlserver winform
- 各种杂项
- hypervisor中又安装vmware workstation
- Unity更改渲染层级代码
- 在Python的while循环中使用else以及循环嵌套的用法
- sqlite3学习
- ORA-16019 和 ORA-16018 错误的处理方法(转)
- Centos7下完美安装并配置mysql5.6
- 设计会员系统的一点尝试(脑图)
- leetcode Find Peak Element
- [leetcode]Find Peak Element
- 什么是Privileged app