Leetcode 199: Binary Tree Right Side View
来源:互联网 发布:规模以上 知乎 编辑:程序博客网 时间:2024/04/26 23:30
Problem:
Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.
For example:
Given the following binary tree,
1 <—
/ \
2 3 <—
\ \
5 4 <—
You should return [1, 3, 4].
Credits:
Special thanks to @amrsaqr for adding this problem and creating all test cases.
分析:
其实本题比较简单,Right Side View即输出每一行最右边的一个元素。对树进行层次遍历,输出每层最右边一个元素即可。
算法如下:
0)空集合A、B,以及空的返回集合C。
1)将树根元素加入到集合A。
2)对集合A中的每一个元素,依次取其左、右子节点,加入到集合B。
3)将集合A最右边的一个元素加入到集合C中。
4)交换集合A、B。清空集合B。
5)重复第2、3、4步,直到集合A为空。
6)集合C中存放的元素即为该树的右视图。
代码如下,运行时间为10ms。
class Solution {public: vector<int> rightSideView(TreeNode *root) { vector<int> result; vector<TreeNode*> hirency; vector<TreeNode*> tmp; vector<TreeNode*> swap; if (root != NULL) hirency.push_back(root); while (hirency.size() >0) { for (int i=0; i<hirency.size(); i++) { TreeNode * node = hirency.at(i); if(node->left) tmp.push_back(node->left); if(node->right) tmp.push_back(node->right); } result.push_back(hirency.at(hirency.size()-1)->val); hirency.clear(); swap = hirency; hirency = tmp; tmp = swap; } return result; }};
1 0
- [leetcode] 199 Binary Tree Right Side View
- leetcode-199 Binary Tree Right Side View
- 199Binary Tree Right Side View-LeetCode
- [LeetCode 199]Binary Tree Right Side View
- Leetcode 199: Binary Tree Right Side View
- LeetCode 199-Binary Tree Right Side View
- Binary Tree Right Side View - LeetCode 199
- leetcode[199]:Binary Tree Right Side View
- 【Leetcode】Binary Tree Right Side View #199
- LeetCode(199)Binary Tree Right Side View
- [LeetCode 199] Binary Tree Right Side View
- leetcode 199: Binary Tree Right Side View
- 【LEETCODE】199-Binary Tree Right Side View
- Leetcode #199 Binary Tree Right Side View
- LeetCode 199 Binary Tree Right Side View
- [leetcode 199] Binary Tree Right Side View
- leetcode 199 Binary Tree Right Side View
- LeetCode-199:Binary Tree Right Side View
- InputStream、InputStreamReader和Reader的关系
- JAVA守护线程与用户线程的区别
- eclipse或myeclipse,web项目无法自动编译,.classpath文件原因造成的
- 一天一点MFC
- fzu2188 过河I BFS+剪枝
- Leetcode 199: Binary Tree Right Side View
- 数据库学习之事务控制
- java常用类
- VTKData-6.2.0的使用方法
- boost random library的使用
- 游戏计划
- 堆排序的OC 实现
- Linux C++学习笔记二
- 解决Unable to load R3 module ...VBoxDD.dll (VBoxDD):GetLastError=1790