文章目录

  • 1. 题目
  • 2. 解题
    • 2.1 DFS
    • 2.2 queue按层从右边遍历

1. 题目

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

示例:输入: [1,2,3,null,5,null,4]
输出: [1, 3, 4]
解释:1            <---/   \
2     3         <---\     \5     4       <---

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-right-side-view
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

2.1 DFS

  • 用一个level变量表示深度,深度==存入的数据数量,则存入,否则,说明同层已经存入数据,不要再存了
class Solution {public:vector<int> rightSideView(TreeNode* root) {vector<int> ans;dfs(root, ans, 0);return ans;}void dfs(TreeNode* root, vector<int> &ans, int level){if(root == NULL)return;if(ans.size() == level)ans.push_back(root->val);dfs(root->right, ans, level+1);dfs(root->left, ans, level+1);}
};

2.2 queue按层从右边遍历

  • 每层的第一个数据存入
class Solution {public:vector<int> rightSideView(TreeNode* root) {if(root == NULL)return {};vector<int> ans;queue<TreeNode*> q;q.push(root);int n;while(!q.empty()){n = q.size();ans.push_back(q.front()->val);while(n--){if(q.front()->right)q.push(q.front()->right);if(q.front()->left)q.push(q.front()->left);q.pop();}}return ans;}
};

LeetCode 199. 二叉树的右视图(DFS 按层queue)相关推荐

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

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

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

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

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

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

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

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

  5. 199. 二叉树的右视图

    199. 二叉树的右视图: 题目链接 :199. 二叉树的右视图 题目: 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值 思路: BFS( ...

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

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

  7. leetcode 199. Binary Tree Right Side View | 199. 二叉树的右视图(Java)

    题目 https://leetcode-cn.com/problems/binary-tree-right-side-view/ 题解 本题思路来源于二叉树的层序遍历. 层序遍历类似问题:leetco ...

  8. leetcode系列-199.二叉树的右视图

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

  9. 【LeetCode笔记】199. 二叉树的右视图(Java、二叉树、层序遍历)

    文章目录 题目描述 思路 & 代码 题目描述 挺简单的,直接看思路代码吧. 思路 & 代码 就是一个层序遍历,取每层的最右边结点即可 /*** Definition for a bin ...

最新文章

  1. 熵,交叉熵,散度理解较为清晰
  2. 程序员最讨厌的9句话,你可有补充?
  3. 计算机一级考模拟试题,计算机一级MSOffice考前模拟试题「附答案」
  4. MyBatis 框架系列之基础初识
  5. unicode表_Python数据库操作 Mysql数据库表引擎与字符集#学习猿地
  6. 用cxSelect插件补充一下回显过滤项功能
  7. datetime类型保存的时间比实际时间少8小时
  8. Java IO实战操作(一)
  9. ubuntu如何删除刚添加的源?
  10. 《机器学习》(周志华)笔记
  11. java留言板_java实现简单留言板功能的代码实例
  12. 03惯性导航系统误差分析
  13. 历史名人 明朝成化仙游抗倭首领总捕头——魏升
  14. 常见编程代码命名风格
  15. 市面售价2W的仿抖音短视频原生双端APP源码,带技术文档管理后台和数据库
  16. STM32F4型号命名规则
  17. 大数据(线性/非线性)降维方法(PCA,LDA,MDS,ISOMAP,LLE)
  18. 新isometric 视角游戏场景系统
  19. python的水藻生长问题_如何抑制水中藻类生长
  20. 联想sr850服务器文档,势不可挡 LenovoThinkSystem SR850给你信心

热门文章

  1. 数字图像处理:各种变换滤波和噪声的类型和用途总结
  2. C语言判断两字符串同构,c语言实现判断两颗树是否同构
  3. mysql接口可以重载吗_php 到底可不可以重载
  4. Angular CLI的简单使用(1)
  5. Python编程之数据结构与算法练习_004
  6. 转载 ---资深HR告诉你:我如何筛选简历与选择人员的
  7. Core Data系列三——基本使用
  8. [Deep Learning]任意层cnn的matlab版本实现
  9. 每日英语:Lighting: Twigs Shine in Home Decor
  10. Asp.Net文件和文件夹操作大全