class Solution {
public:
vector<int> rightSideView(TreeNode* root) {
queue<TreeNode*>que;
if(root!=NULL)que.push(root);
vector<int>vec;
while(!que.empty()){
int size=que.size();
for(int i=0;i<size;i++){
TreeNode *id=que.front();
que.pop();
if(i==(size-1))vec.push_back(id->val);
if(id->left)que.push(id->left);
if(id->right)que.push(id->right);
}
}
return vec;
}
};
几个重要的点:
1.每次会把该层所有的点拿出来
2.每次把该层所有点的下一层的所有点加入 通过循环来实现
错误点
1.因为要右视图所以就是每一层的最后一个点