二叉树从右侧所能看到的节点值 (DFS)

devtools/2024/11/7 8:37:37/

 

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

示例 1:

输入: [1,2,3,null,5,null,4]
输出: [1,3,4]

示例 2:

输入: [1,null,3]
输出: [1,3]

示例 3:

输入: []
输出: []

提示:

  • 二叉树的节点个数的范围是 [0,100]
  • -100 <= Node.val <= 100 

 

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> rightSideView(TreeNode* root) {vector<int> v;dfs(root, 0, v);return v;}void dfs(TreeNode* node,int depth, vector<int>& v){if(!node) return ;    //先判断是否为空,后面才能加入结果if(depth == v.size()) //第一次到达深度就加入结果v.push_back(node->val);dfs(node->right, depth + 1, v); //用 DFS 时,先遍历右子树,再遍历左子树。dfs(node->left, depth + 1, v);}
};


http://www.ppmy.cn/devtools/131963.html

相关文章

软考:案例题分析1101

22年第一题&#xff1a;架构设计与评估 分析文字&#xff0c;识别需求和质量属性&#xff1f;这里需要记忆质量属性有那些&#xff0c;区分需求和质量属性&#xff0c;能区分出质量属性之间的区别。 我的回答&#xff1a; 差距分析&#xff1a; 根据题目中功能的特点&#xff…

【LeetCode】【算法】394. 字符串解码

LeetCode 394. 字符串解码 题目描述 给定一个经过编码的字符串&#xff0c;返回它解码后的字符串。 编码规则为: k[encoded_string]&#xff0c;表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的&#xff1b;输入字…

【数据结构】树-二叉树-堆(下)

&#x1f343; 如果觉得本系列文章内容还不错&#xff0c;欢迎订阅&#x1f6a9; &#x1f38a;个人主页:小编的个人主页 &#x1f380; &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 ✌️ &#x1f91e; &#x1f91f; &#x1f918; &#x1f919; &#x1f448; &…

Renesas R7FA8D1BH (Cortex®-M85) Flash的功能介绍

目录 概述 1 Flash的功能介绍 1.1 功能特征 1.2 时钟配置 1.3 注意点 2 使用方法介绍 2.1 BGO 操作注意事项 2.2 代码Flash注意事项 2.3 Flash时钟&#xff08;FCLK&#xff09; 2.4 中断 2.5 注意点 2.6 Flash应用的限制 3 应用函数接口 3.1 R_FLASH_HP_Open() …

反序列化失败问题

关于ROS2&#xff08;Robot Operating System 2&#xff09;中的反序列化失败问题&#xff0c;通常这个问题可能出现在订阅端&#xff0c;因为反序列化是指将接收到的数据流转换成数据结构&#xff0c;例如对象。如果订阅端接收到的数据格式与预期不符&#xff0c;或者使用的反…

Array.prototype.map()的用法和手写

1.Array.prototype.map()的基本使用 Array.prototype.map() 是 JavaScript 中数组的原型方法之一&#xff0c;用于对数组中的每个元素执行指定的操作&#xff0c;并返回操作结果组成的新数组。它的基本语法如下&#xff1a; const newArray array.map(callback(element,inde…

Tomcat 启动卡住,日志显示 At least one JAR was scanned for TLDs yet contained no TLDs.

现象 Tomcat 启动后&#xff0c;控制台输出卡在了&#xff1a; At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JA…

主流OLAP对比

参考 主流大数据OLAP框架对比 分类 按照架构实现划分&#xff1a; MPP 架构系统&#xff1a;Presto、Impala、Doris、Clickhouse、Spark SQL、Flink SQL…&#xff0c;这种架构主要还是从查询引擎入手&#xff0c;使用分布式查询引擎。搜索引擎架构的系统&#xff1a;es。预计…