[leetcode] 199. Binary Tree Right Side View
来源:互联网 发布:淘宝买的csgo不能交易 编辑:程序博客网 时间:2024/05/17 03:03
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].
这道题是从右侧查看二叉树,获取最右侧的节点,题目难度为Medium。
最简单的想法是采用广度优先的方法按层次序遍历二叉树,把每层最后一个节点存下来就可以了,具体代码:
class Solution {public: vector<int> rightSideView(TreeNode* root) { vector<int> ret; if(!root) return ret; queue<TreeNode*> level; level.push(root); while(!level.empty()) { int sz = level.size(); for(int i=0; i<sz; i++) { TreeNode* node = level.front(); level.pop(); if(i == sz-1) ret.push_back(node->val); if(node->left) level.push(node->left); if(node->right) level.push(node->right); } } return ret; }};还可以采用深度优先的策略,这里要优先遍历每个节点的右子树,记录下当前遍历的层数以便查看当前节点是否是该层第一个遍历到的节点。其实题目改成从左侧看就会变得很容易理解,思维定式罢了。具体代码:
class Solution { void rView(TreeNode* node, int level, vector<int>& ret) { if(!node) return; if(level == ret.size()) ret.push_back(node->val); rView(node->right, level+1, ret); rView(node->left, level+1, ret); }public: vector<int> rightSideView(TreeNode* root) { vector<int> ret; rView(root, 0, ret); return ret; }};
0 0
- [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
- 199. Binary 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
- [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
- ——基于方法的权限控制
- PTC_Mathcad Prime3.0 矩阵的运算
- 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!
- uva-10921
- hdu2082找单词(母函数)
- [leetcode] 199. Binary Tree Right Side View
- ROS在多机器人上的运行
- Dropout中隐层节点的忽略比例与DAE中加噪比例参数的区别
- 杭电oj 1014
- POJ3273 二分与最大值最小化
- android 滚动条下拉反弹的效果(类似微信朋友圈)
- POJ 1830 (高斯消元)
- Random种子
- Handler的内存泄露几解决办法以及闪屏效果的实现