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--;
    }
};

分析:

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

总结:

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

相关推荐
归去_来兮12 小时前
拉格朗日插值算法原理及简单示例
算法·数据分析·拉格朗日插值
千寻girling19 小时前
Python 是用来做 AI 人工智能 的 , 不适合开发 Web 网站 | 《Web框架》
人工智能·后端·算法
颜酱1 天前
一步步实现字符串计算器:从「转整数」到「带括号与优化」
javascript·后端·算法
齐生12 天前
iOS 知识点 - 渲染机制、动画、卡顿小集合
笔记
CoovallyAIHub2 天前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
木心月转码ing2 天前
Hot100-Day14-T33搜索旋转排序数组
算法
会员源码网2 天前
内存泄漏(如未关闭流、缓存无限增长)
算法
用户962377954482 天前
VulnHub DC-1 靶机渗透测试笔记
笔记·测试
颜酱2 天前
从0到1实现LFU缓存:思路拆解+代码落地
javascript·后端·算法
颜酱2 天前
从0到1实现LRU缓存:思路拆解+代码落地
javascript·后端·算法