Binary Tree Level Order Traversal II
2015-09-20 20:06
411 查看
【题目描述】
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
return its bottom-up level order traversal as:
【思路】
思路其实和Binary Tree Level Order Traversal是一样的,不过是最后插入的时候上一题是从尾部插入,这一道是从头部插而已。
【代码】
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] ]
【思路】
思路其实和Binary Tree Level Order Traversal是一样的,不过是最后插入的时候上一题是从尾部插入,这一道是从头部插而已。
【代码】
/** * 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==NULL) return {}; vector<vector<int>> ans; queue<TreeNode*> q; q.push(root); while(!q.empty()){ vector<int> p; int len=q.size(); for(int i=0;i<len;i++){ TreeNode* node=q.front(); p.push_back(node->val); if(node->left!=NULL) q.push(node->left); if(node->right!=NULL) q.push(node->right); q.pop(); } ans.insert(ans.begin(),p); } return ans; } };
相关文章推荐
- 技术人生:故事之三十四 以人为本
- 编译原理:第六节
- Android动画控件之Animation
- IP
- 配置虚拟主机(搭建网站)
- 设计模式-2-单例模式
- 一个测试工程师应具备那些素质和技能?
- linux运维实战练习-2015年9月13日-9月15日课程作业(练习)安排
- Java中 set,list,array(集合与数组)、Map相互转换
- LintCode 字符串查找
- 图像算法---基于局部均值的锐化算法研究
- windows 下修复Ubuntu启动项
- 我选择死亡
- 犀牛——第13章 13.3 JavaScript程序的执行
- 《三体》读后感
- 用win32api写的贪吃蛇
- 【Remoting-5代码实现】
- 最全前端面试问题及答案总结
- python字符串
- OC-集合2(字典,NSSet)