199. 二叉树的右视图
题目描述
给定一个二叉树的 根节点 root
,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
题目理解
层序遍历给定的二叉树,每层的最后一个元素就是从右侧能看到的节点值。
代码
vector<int> rightSideView(TreeNode* root) {
queue<TreeNode*> s;
vector<int> res;
if (root == nullptr)
return res;
s.push(root);
while(s.size() != 0){
int count = s.size();
cout << count << endl;
TreeNode* node;
while(count-- != 0){
node = s.front();
s.pop();
if(node->left != nullptr){
s.push(node->left);
}
if(node->right != nullptr){
s.push(node->right);
}
}
res.push_back(node->val);
}
return res;