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

    示例 1:

    199二叉树的右视图 - 图1

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

    示例 2:

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

    示例 3:

    输入: []
    输出: []
    

    提示:

    • 二叉树的节点个数的范围是 [0,100]
    • -100 <= Node.val <= 100
    class Solution {
    public:
        //也是对得到的每一层tem之后再tem里找答案就行
        vector<int> rightSideView(TreeNode* root) {
            vector<int>ans;
            queue<TreeNode*>q;
            if(root!=nullptr) q.push(root);
            while (!q.empty()) {
                int len=q.size();
                vector<int> tem; //依然层序遍历,只是把每层的最后一个back push进ans
                for (int i = 0; i < len; i++) {
                    TreeNode* node=q.front();
                    q.pop();
                    tem.push_back(node->val);
                    if(node->left) q.push(node->left);
                    if(node->right) q.push(node->right);
                }
                ans.push_back(tem.back());
            }
            return ans;
        }
    };