码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode_199题——Binary Tree Right Side View(广度优先搜索,队列queue)

时间:2015-04-17 21:51:07      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

#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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!