自学内容网 自学内容网

【宽搜】5.leetcode 199 二叉树的右视图

1 题目描述

题目链接:二叉树的右视图
在这里插入图片描述

2 题目解析

思路:

可以运用 层序遍历 将每一层的结点值存入到vector< int >中,然后对每一层的vector,将vector的最后一个值加入到结果的vector中去

层序遍历的模板可以看我之前写的这篇文章:层序遍历模板

3 代码

class Solution {
public:
    vector<int> rightSideView(TreeNode* root) {
        vector<int> res;
        if (root == nullptr)
            return res;

        queue<TreeNode*> q;
        q.push(root);

        while(q.size())
        {
            vector<int> tmp;
            int sz = q.size();
            for (int i = 0; i < sz; ++ i)
            {
                TreeNode* t = q.front();
                q.pop();

                tmp.push_back(t->val);

                if (t->left)
                    q.push(t->left);
                if (t->right)
                    q.push(t->right);
            }
            
            //只存入tmp的最后一个值
            res.push_back(tmp.back());
        }

        return res;
    }
};

在这里插入图片描述


原文地址:https://blog.csdn.net/qq_64076540/article/details/142794055

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!