AC截图
题目
思路
这道题是层序遍历的变种,还是维护一个cnt变量用于记录一层的容量,在cnt==1时,是该层最右边的结点,将其值加入结果vector中即可。
代码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> rightSideView(TreeNode* root) {vector<int> res;if(root==NULL){return res;}deque<TreeNode*> dq;dq.push_back(root);while(!dq.empty()){int cnt = dq.size();while(cnt>0){TreeNode* node = dq.front();dq.pop_front();if(node->left!=NULL){dq.push_back(node->left);}if(node->right!=NULL){dq.push_back(node->right);}if(cnt==1){res.push_back(node->val);}cnt--;}}return res;}
};