leetcode做题笔记199. 二叉树的右视图

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

示例 1:

复制代码
输入: [1,2,3,null,5,null,4]
输出: [1,3,4]

示例 2:

复制代码
输入: [1,null,3]
输出: [1,3]

示例 3:

复制代码
输入: []
输出: []

思路一:递归

c++解法

cpp 复制代码
class Solution {
public:
    vector<int> rightSideView(TreeNode* root) {
        int depth=0;
        int h=0;
        vector<int> res;
        rightView(root,depth,0,res);
        return res;
    }
    void rightView(TreeNode* node,int& depth,int h,vector<int>& res)
    {
        if(node==nullptr) return;
            h++;
        if(h>depth)
            {
                res.push_back(node->val);
                depth++;
            }
        if(node->right)
            rightView(node->right,depth,h,res);
        if(node->left)
            rightView(node->left,depth,h,res);
        h--;
    }
};

分析:

本题要输出二叉树的右视图,可利用递归的方法,将最右边的子树不断放入栈中,最后输出,每放入一次深度加一,得到即为所求答案

总结:

本题考察递归在二叉树上的应用,利用递归调用上一遍历的子树将所要求的数放入栈中,最后输出答案

相关推荐
zjnlswd7 分钟前
C#学习笔记2 刘铁锰
笔记·学习
AI服务老曹19 分钟前
视觉算法模型管理性能优化指南:多版本平滑升级、灰度与快速回滚实战
算法·性能优化
Mr_liu_66621 分钟前
Claude非专业入门实战笔记(4):Claude运行方式简单解析——从RAG到代理循环
笔记·ai编程·claude
凯尔萨厮25 分钟前
Git(学习笔记)
笔记·git·学习
l12586528 分钟前
# RAG重排序实战:硅基流动bge-reranker-v2-m3在线API vs 本地CrossEncoder,一篇讲透两种方案
数据库·人工智能·python·深度学习·算法·机器学习·langchain
蒸蒸yyyyzwd40 分钟前
cpp选手备注秋招 MySQL学习笔记 day8
笔记·学习·求职招聘
AI直播技术杂谈44 分钟前
本周技术笔记:直播推流的心跳检测与断线重连逻辑
笔记
九硕智慧建筑一体化厂家1 小时前
从照明节能到碳排可见:能碳平台助力机房迈向 “零碳” 未来
运维·笔记·智慧城市
创世宇图1 小时前
【AI量化交易实战】第06讲:小雅再升级——Talib指标库与K线形态量化
算法
机器学习之心1 小时前
CPO-SVR:用冠豪猪优化算法给支持向量回归机“自动调参“,一次预测多个指标
算法·回归·cpo-svr