本题只要记录层次遍历每一层的最右侧结点即可
vector<int> rightSideView(TreeNode* root) {
vector<int> res;
if(root==nullptr)return res;
TreeNode *p=root;
queue<TreeNode*> que;
que.push(p);
while(!que.empty()){
int n=que.size();
for(int i=0;i<n;i++)//分层处理
{
p=que.front();
que.pop();
if(i==n-1)res.push_back(p->val);//记录每一层的最后一个
if(p->left)que.push(p->left);
if(p->right)que.push(p->right);
}
}
return res;
}