思路:层次遍历,取每一层的最右边的结果即可
vector<int> rightSideView(TreeNode* root) {
vector<int> res;
queue<TreeNode*> st;
if (root == nullptr) {
return res;
}
st.push(root);
while(!st.empty()) {
int len = st.size();
for (int i = 0; i < len; i++) {
TreeNode* temp = st.front();
st.pop();
if (temp->left) {
st.push(temp->left);
}
if (temp->right) {
st.push(temp->right);
}
if (i == len - 1) {
res.push_back(temp->val);
}
}
}
return res;
}