题目

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测试程序源码

最新文章

  1. alpha值的问题
  2. xml文件格式说明
  3. 二进制求最大公约数&amp;&amp;输出二进制
  4. js checkbox获取选中的值
  5. Last-Modified、ETag、Expires和Cache-Control
  6. SSH由WAS/Tomcat/Weblogic迁移到JBOSS
  7. PHP soap Web Service 使用SoapDiscovery.class.php 生成wsdl文件
  8. Android 5.0 开发者官方网站疏理知识结构
  9. FineUI表格模板列Undefined问题
  10. Java 8 Learn Notes
  11. 从deque到std::stack,std::queue,再到iOS 中NSArray(CFArray)
  12. dfs+剪枝:poj2362
  13. 【转】《高级前端3.6》JavaScript多线程——Concurrent.Thread.js, WebWork
  14. 手把手的SpringBoot教程,SpringBoot创建web项目(五)
  15. day06 Request Response
  16. Java核心技术卷一基础知识-第2章-Java程序设计环境-读书笔记
  17. Android应用内嵌unity3d游戏项目
  18. 【ftp】主动模式和被动模式
  19. thinkphp 3.2.1 URL 大小写问题 下面有具体说明
  20. 简单使用Vuex步骤及注意事项

热门文章

  1. [软件工程基础]PhyLab 技术规格说明书
  2. [hdu1686] Oulipo【KMP】
  3. KEIL MDK之RTX的移植
  4. Unity Shader入门精要学习笔记 - 第11章 让画面动起来
  5. php中socket的使用(重点参考)
  6. 实战:mysql写存储过程并定时调用
  7. Java虚拟机(JVM),JDK,JRE和JVM的区别——通过示例学习Java编程(2)
  8. AJPFX简述i=i+1与i+=1及x++的区别和效率
  9. hihocoder1766 字符串问题
  10. AngularJs数据绑定原理