给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例 1:
**输入:**root = 1,2,3,null,5,null,4
输出:1,3,4
解释:

示例 2:
**输入:**root = 1,2,3,4,null,null,null,5
输出:1,3,4,5
解释:

示例 3:
**输入:**root = 1,null,3
输出:1,3
示例 4:
**输入:**root = \[\]
输出:\[\]
提示:
- 二叉树的节点个数的范围是
[0,100] -100 <= Node.val <= 100
思路
使用层次遍历的方法遍历二叉树的每一层,然后取每一层的最后一个元素即可
cpp
vector<int> rightSideView(TreeNode* root) {
vector<int> res;
if(!root) return res;
queue<TreeNode*> inque;
inque.push(root);
int queSize=0;
while(!inque.empty()){
queSize=inque.size();
for(int i=0;i<queSize-1;i++){
root=inque.front();
if(root->left) inque.push(root->left);
if(root->right) inque.push(root->right);
inque.pop();
}
//处理每一层的最后一个元素
root=inque.front();
res.push_back(root);
if(root->left) inque.push(root->left);
if(root->right) inque.push(root->right);
inque.pop();
}
return res;
}
推荐一个零声教育学习教程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx ,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,点击立即学习:链接