LeetCode 199. 二叉树的右视图(DFS 按层queue)
文章目录
- 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)相关推荐
- LeetCode 199. 二叉树的右视图(DFS)(特殊的递归)
题目描述 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 思路 详见链接 代码 class TreeNode:def __init__(self,x):se ...
- Leetcode 199.二叉树的右视图
Time: 20190903 Type: Medium 题目描述 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 输入: [1,2,3,null,5 ...
- Leetcode 199.二叉树的右视图 (每日一题 20210628 同类型题)
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值.示例:输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释:1 <--- ...
- Leetcode 199. 二叉树的右视图 解题思路及C++实现
解题思路: 使用层序遍历,得到每一层的最后边的节点,然后push_back到结果容器中. 通过使用q.size()函数,只需要一个队列即可实现层序遍历. /*** Definition for a b ...
- 199. 二叉树的右视图
199. 二叉树的右视图: 题目链接 :199. 二叉树的右视图 题目: 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值 思路: BFS( ...
- LeetCode-笔记-199. 二叉树的右视图——BFS广度优先搜索
LeetCode-笔记-199. 二叉树的右视图 199. 二叉树的右视图 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 输入: [1,2,3,n ...
- leetcode 199. Binary Tree Right Side View | 199. 二叉树的右视图(Java)
题目 https://leetcode-cn.com/problems/binary-tree-right-side-view/ 题解 本题思路来源于二叉树的层序遍历. 层序遍历类似问题:leetco ...
- leetcode系列-199.二叉树的右视图
题目描述: 给定一个二叉树的 根节点 root, 想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能 看到的节点值. 示例 1: 输入: [1,2,3,null,5,null,4] 输出: ...
- 【LeetCode笔记】199. 二叉树的右视图(Java、二叉树、层序遍历)
文章目录 题目描述 思路 & 代码 题目描述 挺简单的,直接看思路代码吧. 思路 & 代码 就是一个层序遍历,取每层的最右边结点即可 /*** Definition for a bin ...
最新文章
- 熵,交叉熵,散度理解较为清晰
- 程序员最讨厌的9句话,你可有补充?
- 计算机一级考模拟试题,计算机一级MSOffice考前模拟试题「附答案」
- MyBatis 框架系列之基础初识
- unicode表_Python数据库操作 Mysql数据库表引擎与字符集#学习猿地
- 用cxSelect插件补充一下回显过滤项功能
- datetime类型保存的时间比实际时间少8小时
- Java IO实战操作(一)
- ubuntu如何删除刚添加的源?
- 《机器学习》(周志华)笔记
- java留言板_java实现简单留言板功能的代码实例
- 03惯性导航系统误差分析
- 历史名人 明朝成化仙游抗倭首领总捕头——魏升
- 常见编程代码命名风格
- 市面售价2W的仿抖音短视频原生双端APP源码,带技术文档管理后台和数据库
- STM32F4型号命名规则
- 大数据(线性/非线性)降维方法(PCA,LDA,MDS,ISOMAP,LLE)
- 新isometric 视角游戏场景系统
- python的水藻生长问题_如何抑制水中藻类生长
- 联想sr850服务器文档,势不可挡 LenovoThinkSystem SR850给你信心
热门文章
- 数字图像处理:各种变换滤波和噪声的类型和用途总结
- C语言判断两字符串同构,c语言实现判断两颗树是否同构
- mysql接口可以重载吗_php 到底可不可以重载
- Angular CLI的简单使用(1)
- Python编程之数据结构与算法练习_004
- 转载 ---资深HR告诉你:我如何筛选简历与选择人员的
- Core Data系列三——基本使用
- [Deep Learning]任意层cnn的matlab版本实现
- 每日英语:Lighting: Twigs Shine in Home Decor
- Asp.Net文件和文件夹操作大全