给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

示例:

通过次数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】登峰造极--二叉树的右视图相关推荐

  1. Leetcode 199.二叉树的右视图

    Time: 20190903 Type: Medium 题目描述 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 输入: [1,2,3,null,5 ...

  2. LeetCode 199. 二叉树的右视图(DFS 按层queue)

    文章目录 1. 题目 2. 解题 2.1 DFS 2.2 queue按层从右边遍历 1. 题目 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例:输入: ...

  3. Leetcode 199.二叉树的右视图 (每日一题 20210628 同类型题)

    给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值.示例:输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释:1 <--- ...

  4. LeetCode 199. 二叉树的右视图(DFS)(特殊的递归)

    题目描述 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 思路 详见链接 代码 class TreeNode:def __init__(self,x):se ...

  5. Leetcode 199. 二叉树的右视图 解题思路及C++实现

    解题思路: 使用层序遍历,得到每一层的最后边的节点,然后push_back到结果容器中. 通过使用q.size()函数,只需要一个队列即可实现层序遍历. /*** Definition for a b ...

  6. LeetCode-笔记-199. 二叉树的右视图——BFS广度优先搜索

    LeetCode-笔记-199. 二叉树的右视图 199. 二叉树的右视图 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 输入: [1,2,3,n ...

  7. 常考数据结构与算法:输出二叉树的右视图

    题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 上图树的右视图为:{1,4,3,7} 做此题之前可以先做下面3道题: 1. 常考数据结构与算法:求二叉树的层序遍历 2.常 ...

  8. 牛客题霸 [输出二叉树的右视图] C++题解/答案

    牛客题霸 [输出二叉树的右视图] C++题解/答案 题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 题解: 分两个过程: 先用前序遍历+中序遍历恢复二叉树,这个应该都会. ...

  9. [Leedcode][JAVA][第199题][二叉树的右视图][BFS][DFS][前中后序遍历]

    [问题描述]199.二叉树的右视图 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值.示例:输入: [1,2,3,null,5,null,4] 输出: [1, ...

最新文章

  1. 17秋福师《计算机应用基础》在线作业一,福师17春秋学期《计算机应用基础》在线作业一...
  2. iOS传值之代理传值
  3. Java集合篇:ConcurrentHashMap详解(JDK1.6)
  4. iphone备忘录突然没了_苹果突然下架12 天猫:双11有惊喜!iPhone12 mini配色缩水
  5. linux php任务计划,linux系统怎么添加计划任务执行php文件
  6. PL/SQL Step By Step(三)
  7. linux 下安装wps
  8. 自适应各终端懒人泽客导航源码v2.6 无后门
  9. 常用的SEO工具都有哪些呢?5个SEO必备优化工具推荐
  10. MYSQL数据库使用手册
  11. 计算机专业英语词汇分类收录
  12. 【字符编码】Unicode字符集与字符编码方式
  13. 循环时尚是消费者与电商平台的一场“双向奔赴”?
  14. javafor循环基础练习 -26个大小写字母
  15. 心电电路算法滤波_心电信号噪声的数字滤波研究
  16. 干货!常见的SQL面试题:经典50例!
  17. HTML+JS+CSS+xml快速入门
  18. 【windows】设置远程桌面连接?多用户登录设置?取消登录密码
  19. paypal 主要的html 表格变量的含义
  20. 一份超详细的Java问题排查工具单

热门文章

  1. 点击某个按钮切换图片(按钮颜色跟着改变)
  2. 二进制介绍、编码、计算机数据计量单位
  3. Boost库学习笔记(一)安装与配置
  4. D3D HOOK实现透视讲解
  5. Redis追命连环问,你能回答到第几问?(中)Redis性能,与memcache区别,淘汰策略及数据持久化
  6. 完美解决SDWebImage加载多个图片内存崩溃的问题
  7. 移动阅读:用户的刚需在哪里?
  8. 关于营业厅终端桌面系统智慧平台解决方案
  9. Wireshark使用指南之显示过滤器
  10. 外贸网站访问速度慢的原因