# 二叉树的右视图
给定一个二叉树的 根节点 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
## template
```cpp
#include
using namespace std;
struct TreeNode
{
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class Solution
{
public:
vector rightSideView(TreeNode *root)
{
vector ret;
queue queues[2];
if (root != NULL)
queues[0].push(root);
int i = 0, j = 1, tmp;
TreeNode *p;
while (!queues[0].empty() || !queues[1].empty())
{
while (!queues[i].empty())
{
p = queues[i].front();
queues[i].pop();
if (p->left)
queues[j].push(p->left);
if (p->right)
queues[j].push(p->right);
tmp = p->val;
}
ret.push_back(tmp);
i = (i + 1) % 2;
j = (j + 1) % 2;
}
return ret;
}
};
```
## 答案
```cpp
```
## 选项
### A
```cpp
```
### B
```cpp
```
### C
```cpp
```