二叉树的右视图
原题:
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释:1 <---/ \2 3 <---\ \5 4 <---
解题方法:
解法一:
class Solution {public:vector<int> res;vector<int> rightSideView(TreeNode* root) {if(!root) return {};queue<TreeNode*> que;que.push(root);while(!que.empty()){int size=que.size(); //必须单独拿一个size变量记录size,因为que.size()是动态变化的res.push_back(que.back()->val);for(int i=0;i<size;i++){TreeNode* node=que.front();que.pop();if(node->left) que.push(node->left);if(node->right) que.push(node->right);}}return res;}};
做题小结:
针对解法一:
- 一定要注意单独使用一个size变量,因为使用que.size()的话,它的值会随子节点的push而变化
