LeetCode107—Binary Tree Level Order Traversal II
2016-03-19 20:18
253 查看
LeetCode107—Binary Tree Level Order Traversal II
根据前/后序+中序遍历曾经考试常考,然而代码没写过,真是十分无奈。。等过两天学习了再来写这题是二叉树层序遍历。
原题
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]
]
分析
层序遍历啊,然后把容器逆置,最简单直观的办法,至于还有没有更好的方法,等知道再写吧…代码
class Solution { private: void help(vector<vector<int>>&result,TreeNode * root) { if(root == NULL) return; vector<TreeNode*> q; vector<int>tmp; int front = 0; int rear =1; q.push_back(root); while(front < q.size()) { rear=q.size(); while(front < rear) { tmp.push_back(q[front]->val); if(q[front]->left !=NULL) q.push_back(q[front]->left); if(q[front]->right !=NULL) q.push_back(q[front]->right); ++front; } result.push_back(tmp); tmp.clear(); } } public: vector<vector<int>> levelOrderBottom(TreeNode* root) { vector<vector<int>>result; help(result,root); vector<vector<int>>inverse(result.rbegin(),result.rend()); return inverse; } };
相关文章推荐
- Jenkins进阶系列之——16一个完整的JENKINS下的ANT BUILD.XML文件
- python decorator装饰器
- 第12条:理解消息转发机制
- 机器学习:启发式算法
- 取消Android标题栏
- 获取单链表中倒数第N个结点数据
- Java基础之异常篇
- 在qtcreator上进行ros机器人操作系统编程,并且配置CMakeLists.txt包含opencv2和aruco增强现实库
- Jenkins进阶系列之——15Maven获取Jenkins的Subversion的版本号
- Linux命令之chown
- 第4周-项目4-(4)
- 第4周-项目4-(3)
- Jenkins进阶系列之——14配置Jenkins用户和权限
- Jenkins入门系列之——00答疑解惑
- js查找水仙花数
- 复利计算4.0
- 解决 Gnome3 窗口背景是黑色的问题
- javascript学习笔记
- NBUT 1647 又一道简单题【数学+枚举】
- 第4周-项目4-(2)