zoukankan      html  css  js  c++  java
  • leetCode(21):Binary Tree Right Side View 分类: leetCode 2015-06-22 09:00 140人阅读 评论(0) 收藏

    Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.

    For example:
    Given the following binary tree,

       1            <---
     /   
    2     3         <---
          
      5     4       <---
    

    You should return [1, 3, 4].

    采用层序遍历的方式,每一层的最后一个结点即为在右侧可以看到的结点;

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        vector<int> rightSideView(TreeNode* root) {
            queue<TreeNode*> nodes;
        	vector<int> vec;
        	vector< vector<int> > result;
        	vector<int> tmp;
        	if(NULL==root)
        		return vec;
        	nodes.push(root);
        	while(!nodes.empty())
        	{
        		int length=nodes.size();
        		int i=0;
        		while(i<length)
        		{
        			TreeNode* tmpNode=nodes.front();
        			tmp.push_back(tmpNode->val);
        			if(tmpNode->left)
        				nodes.push(tmpNode->left);
        			if(tmpNode->right)
        				nodes.push(tmpNode->right);
        			nodes.pop();
        			i++;
        		}
        		result.push_back(tmp);
        		tmp.clear();
        	}
        	
        	for(size_t i=0;i<result.size();++i)
        	{
        		vec.push_back(result[i][result[i].size()-1]);
        	}
        	return vec;
        }
    };


  • 相关阅读:
    算法训练 P1103
    算法训练 表达式计算
    算法训练 表达式计算
    基础练习 时间转换
    基础练习 字符串对比
    Codeforces 527D Clique Problem
    Codeforces 527C Glass Carving
    Codeforces 527B Error Correct System
    Codeforces 527A Glass Carving
    Topcoder SRM 655 DIV1 250 CountryGroupHard
  • 原文地址:https://www.cnblogs.com/zclzqbx/p/4687094.html
Copyright © 2011-2022 走看看