这道leetcode最新出的题,貌似也不是很难,用广度优先搜索即可,参考代码如下。
class Solution {
public:
vector<int> rightSideView(TreeNode *root) {
vector<int> answer;
queue<TreeNode *> queue, temp_queue;
TreeNode * front = 0;
if (NULL == root)
{
return answer;
}
queue.push(root);
answer.push_back(root->val);
while (!queue.empty())
{
while (!temp_queue.empty())
{
temp_queue.pop();
}
while (!queue.empty())
{
front = queue.front();
if (NULL != front->left)
{
temp_queue.push(front->left);
}
if (NULL != front->right)
{
temp_queue.push(front->right);
}
queue.pop();
}
queue = temp_queue;
if (!queue.empty())
{
answer.push_back(queue.back()->val);
}
}
return answer;
}
};