二叉树的右视图
1. LeetCode 199. Binary Tree Right Sise View
2. 描述
给定一颗二叉树,想象从右侧观察这个树,返回所看到的节点的值(从上到下)
3. 示例
给定二叉树:
1 <---
/ \
2 3 <---
\ \
5 4 <---
返回结果: [1, 3,4 ]
4. 解决方案:
vector<int> rightSideView(TreeNode* root) {
vector<int> res;
if(root == nullptr){
return res;
}
queue<TreeNode*> nodes;
nodes.push(root);
while(!nodes.empty()){
for(int i = 0, len = nodes.size(); i < len;i++){
TreeNode* node = nodes.front();
nodes.pop();
if(node->left != nullptr){
nodes.push(node->left);
}
if(node->right != nullptr){
nodes.push(node->right);
}
if(i == len-1){
res.push_back(node->val);
}
}
}
return res;
}