leetcode 199. Binary Tree Right Side View 一个简单的BST的BFS应用
来源:互联网 发布:淘宝小二和闲鱼小法庭 编辑:程序博客网 时间:2024/06/06 03:01
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].
这道题考察的就是最右边看到的结点,就是一个简单的BFS广度优先遍历。
代码如下:
import java.util.ArrayList;import java.util.List;/*class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}*//* * 这个问题就是二叉树的广度优先遍历 * */public class Solution { public List<Integer> rightSideView(TreeNode root) { List<Integer> res=new ArrayList<Integer>(); if(root==null) return res; List<TreeNode> queue=new ArrayList<TreeNode>(); queue.add(root); while(queue.isEmpty()==false) { int size=queue.size(); res.add(queue.get(size-1).val); for(int i=0;i<size;i++) { TreeNode one=queue.get(i); if(one.left!=null) queue.add(one.left); if(one.right!=null) queue.add(one.right); } for(int i=0;i<size;i++) queue.remove(0); } return res; }}
下面是C++的做法,就是很简单的BFS广度优先遍历的做法,
代码如下:
#include <iostream>#include <vector>#include <string>#include <map>#include <cmath>#include <queue>#include <stack>#include <algorithm>using namespace std;/*struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};*/class Solution{public: vector<int> rightSideView(TreeNode* root) { vector<int> res; if (root == NULL) return res; queue<TreeNode*> que; que.push(root); while (que.empty()==false) { int size = que.size(); res.push_back(que.back()->val); for (int i = 0; i < size; i++) { TreeNode* top = que.front(); que.pop(); if (top->left != NULL) que.push(top->left); if (top->right != NULL) que.push(top->right); } } return res; }};
阅读全文
0 0
- leetcode 199. Binary Tree Right Side View 一个简单的BST的BFS应用
- [BFS]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
- 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
- Webpack 打包优化之体积篇
- java学习之路
- 【python学习笔记】Python反射机制
- UISearchBar 一步实现
- GitLab结合SourceTree的使用
- leetcode 199. Binary Tree Right Side View 一个简单的BST的BFS应用
- 简明python教程实例二
- 垃圾收集器
- JAVA 并发类(四) CopyOnWriteArrayList 源码分析
- 20170920PHP用PHPize装模块
- python爬虫实现简单爬取淘宝商品demo
- Redhat6.3 yum .repo源配置问题 rhel-server-6.3
- 第三周 --顺序表 的基本运算
- Oracle GoldenGate磁盘要求