【LeetCode热题100】199. 二叉树的右视图(二叉树)

一.题目要求

给定一个二叉树的 根节点 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

四.解题思路

解法1.层序遍历,每一层最后一个结点值加入结果
解法2.DFS递归,方法来自 https://www.bilibili.com/video/BV18M411z7bb

五.代码实现

解1

class Solution {
public:
    vector<int> rightSideView(TreeNode* root) {

        if(!root) return {};
        vector<int> ans;
        queue<TreeNode*> sup;
        sup.push(root);
        TreeNode* p = sup.front();
        while(!sup.empty())
        {
            int size = sup.size();
            while(size > 0)
            {
                size--;
                if(!size) ans.push_back(p->val);
                sup.pop();
                if(p->left) sup.push(p->left);
                if(p->right) sup.push(p->right);
                p = sup.front();
            }          
        }
        return ans;
    }
};

解2

class Solution {
    vector<int> ans;

    void dfs(TreeNode *node, int depth) {
        if (node == nullptr) return;
        if (depth == ans.size())
            ans.push_back(node->val);
        dfs(node->right, depth + 1);
        dfs(node->left, depth + 1);
    }

public:
    vector<int> rightSideView(TreeNode *root) {
        dfs(root, 0);
        return ans;
    }
};

六.题目总结

重点还是思想

相关推荐

  1. Leetcode 199:视图

    2024-03-27 19:28:06       10 阅读
  2. LeetCode199.视图

    2024-03-27 19:28:06       9 阅读
  3. 199_视图

    2024-03-27 19:28:06       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-27 19:28:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-27 19:28:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-27 19:28:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-27 19:28:06       20 阅读

热门阅读

  1. 大话设计模式之策略模式

    2024-03-27 19:28:06       21 阅读
  2. 力扣hot 100:1. 两数之和(未完成待更新)

    2024-03-27 19:28:06       17 阅读
  3. 天地图加载WMS图层服务,点击获取图层信息

    2024-03-27 19:28:06       19 阅读
  4. 零基础Web3入门到精通

    2024-03-27 19:28:06       17 阅读
  5. 2024.3.26力扣刷题记录-二叉树学习记录1(未完)

    2024-03-27 19:28:06       19 阅读
  6. String、StringBuffer和StringBuilder之间的区别

    2024-03-27 19:28:06       17 阅读
  7. 精简版节流防抖实现

    2024-03-27 19:28:06       19 阅读
  8. 解释一下文件I/O的错误处理

    2024-03-27 19:28:06       20 阅读
  9. 内存泄漏导致Hard_Fault问题记录

    2024-03-27 19:28:06       20 阅读