解答思路:BFS之后拿最右边的元素就可以。
Tips:拿最右边的元素可以遍历队列中的元素个数(q.size())找到最后一个就行,所以可以用for循环
class Solution {
public:
vector<int> rightSideView(TreeNode* root) {
vector<int> res;
queue<TreeNode*> q;
if(!root) return res;
q.push(root);
while(!q.empty()){
int n = q.size();
for(int i = 0 ; i < n ; i++){
TreeNode* cur = q.front();
q.pop();
if(cur->left) q.push(cur->left);
if(cur->right) q.push(cur->right);
if(i == n-1) res.emplace_back(cur->val);
}
}
return res;
}
};