/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ classSolution { public: vector<int> rightSideView(TreeNode* root){ if (root == nullptr) return {}; queue<TreeNode*> q; vector<int> ans; q.push(root);
while (!q.empty()) { int n = q.size(); for (int i = 0; i < n; i++) { TreeNode* temp = q.front(); q.pop(); if (temp->left != nullptr) q.push(temp->left); if (temp->right != nullptr) q.push(temp->right); if (i == n - 1) ans.push_back(temp->val); } }