标签:
#include<iostream>
#include<queue>
#include<vector>
using namespace std;
// Definition for binary tree
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
/*这道题采用广度优先搜索的算法来做,一层一层的进行搜索,而在每一层将这一层所有的
结点加入到队列里面去,并记录下结点的个数,这些结点是从左到右依次加入了,当从队列出来这一层
队列的最后一个元素时,就是最右边的那个数。
*/
vector<int> rightSideView(TreeNode *root) {
queue<TreeNode*> temp;//用来计算的队列
int row_size=1;
TreeNode* temp_node;
vector<int> result_last;
if(root==NULL)
return result_last;
temp.push(root);
while(!temp.empty())
{
while(row_size--)
{
temp_node=temp.front();
temp.pop();
if(row_size==0)
result_last.push_back(temp_node->val);
if(temp_node->left!=NULL)
temp.push(temp_node->left);
if(temp_node->right!=NULL)
temp.push(temp_node->right);
}
row_size=temp.size();
}
return result_last;
}
int main()
{
}
leetcode_199题——Binary Tree Right Side View(广度优先搜索,队列queue)
标签:
原文地址:http://www.cnblogs.com/yanliang12138/p/4435830.html