【leetcode】登峰造极--二叉树的右视图
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
通过次数31,361提交次数48,920
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-right-side-view
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
算法讲解
点击此处.
一、DFS
class Solution {public:vector<int> res;vector<int> rightSideView(TreeNode* root) {int len = 0;//层数Dfs(root, len);return res;}void Dfs(TreeNode* root, int len){//此处的len没有&是应为深度优先遍历是将最右值第一个读取//当右树为空,此时需要判断左树的该层是否为空//所以又从左树开始向下走,但是这些节点不需要进入结果//此时需要len != res.size() 所以不用&if(root == NULL){return ;}//遍历规则该层的第一个为结果值if(len == res.size()){res.push_back(root->val);}len++;Dfs(root->right, len);Dfs(root->left, len);}
};
二、BFS
class Solution {public:vector<int> rightSideView(TreeNode* root) {vector<int> res;queue<TreeNode*> q;if (root == nullptr){return res;}q.push(root);while (!q.empty()){int size = q.size();//该层的节点个数for(int i = 0; i < size; i++){TreeNode* index = q.front();if (index->left != NULL){q.push(index->left);}if (index->right != NULL){q.push(index->right);}//从左往右读所以结果值为当前层的最后一个值if(i == q.size - 1){res.push_back(q.front()->val);}q.pop();}}return res;}
};
【leetcode】登峰造极--二叉树的右视图相关推荐
- Leetcode 199.二叉树的右视图
Time: 20190903 Type: Medium 题目描述 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 输入: [1,2,3,null,5 ...
- LeetCode 199. 二叉树的右视图(DFS 按层queue)
文章目录 1. 题目 2. 解题 2.1 DFS 2.2 queue按层从右边遍历 1. 题目 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例:输入: ...
- Leetcode 199.二叉树的右视图 (每日一题 20210628 同类型题)
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值.示例:输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释:1 <--- ...
- LeetCode 199. 二叉树的右视图(DFS)(特殊的递归)
题目描述 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 思路 详见链接 代码 class TreeNode:def __init__(self,x):se ...
- Leetcode 199. 二叉树的右视图 解题思路及C++实现
解题思路: 使用层序遍历,得到每一层的最后边的节点,然后push_back到结果容器中. 通过使用q.size()函数,只需要一个队列即可实现层序遍历. /*** Definition for a b ...
- LeetCode-笔记-199. 二叉树的右视图——BFS广度优先搜索
LeetCode-笔记-199. 二叉树的右视图 199. 二叉树的右视图 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 输入: [1,2,3,n ...
- 常考数据结构与算法:输出二叉树的右视图
题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 上图树的右视图为:{1,4,3,7} 做此题之前可以先做下面3道题: 1. 常考数据结构与算法:求二叉树的层序遍历 2.常 ...
- 牛客题霸 [输出二叉树的右视图] C++题解/答案
牛客题霸 [输出二叉树的右视图] C++题解/答案 题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 题解: 分两个过程: 先用前序遍历+中序遍历恢复二叉树,这个应该都会. ...
- [Leedcode][JAVA][第199题][二叉树的右视图][BFS][DFS][前中后序遍历]
[问题描述]199.二叉树的右视图 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值.示例:输入: [1,2,3,null,5,null,4] 输出: [1, ...
最新文章
- 17秋福师《计算机应用基础》在线作业一,福师17春秋学期《计算机应用基础》在线作业一...
- iOS传值之代理传值
- Java集合篇:ConcurrentHashMap详解(JDK1.6)
- iphone备忘录突然没了_苹果突然下架12 天猫:双11有惊喜!iPhone12 mini配色缩水
- linux php任务计划,linux系统怎么添加计划任务执行php文件
- PL/SQL Step By Step(三)
- linux 下安装wps
- 自适应各终端懒人泽客导航源码v2.6 无后门
- 常用的SEO工具都有哪些呢?5个SEO必备优化工具推荐
- MYSQL数据库使用手册
- 计算机专业英语词汇分类收录
- 【字符编码】Unicode字符集与字符编码方式
- 循环时尚是消费者与电商平台的一场“双向奔赴”?
- javafor循环基础练习 -26个大小写字母
- 心电电路算法滤波_心电信号噪声的数字滤波研究
- 干货!常见的SQL面试题:经典50例!
- HTML+JS+CSS+xml快速入门
- 【windows】设置远程桌面连接?多用户登录设置?取消登录密码
- paypal 主要的html 表格变量的含义
- 一份超详细的Java问题排查工具单