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

Binary Tree Level Order Traversal II

时间:2015-05-31 10:53:03      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

class Solution {
public:
	vector<vector<int>> result;
    vector<vector<int>> levelOrderBottom(TreeNode* root) {
        vector<TreeNode*> thisleveldata;
		vector<TreeNode*> topleveldata;
		if(root == NULL)
		 return result;
         vector<int> levelresult;
		 levelresult.push_back(root->val);
		 result.push_back(levelresult);
		 //insert_iterator<vector<vector<int>>> iter;
		 int i=0;

		 topleveldata.push_back(root);

		 while(1)
		 {
             levelresult.clear();
			 thisleveldata.clear();
			 if(topleveldata.size() == 0)
			  break ;
			 for(i= 0; i < topleveldata.size() ;i++)
			 {
                
				AddResult(topleveldata[i],levelresult,thisleveldata);
			 }	
			 //AddEnd(topleveldata[topleveldata.size()-1],levelresult,thisleveldata);
			 if(levelresult.size()!=0)
			 result.insert(result.begin(),levelresult);
			 topleveldata.resize(thisleveldata.size());
			 copy(thisleveldata.begin(),thisleveldata.end(),topleveldata.begin());
		 }		
		 return result;
        
    }
	void AddResult(TreeNode* pNode,vector<int>& levelresult,vector<TreeNode*>& thisleveldata)
	{
	
		   TreeNode* pNext; 
		   if(pNode->left != NULL)
		   {
		      pNext = pNode->left;
			  thisleveldata.push_back(pNext);
		      levelresult.push_back(pNext->val);
		   }
		     
		   if(pNode->right != NULL)
		   {
		      pNext = pNode->right;
			  thisleveldata.push_back(pNext);
		      levelresult.push_back(pNext->val);
		   }
	}
	void AddEnd(TreeNode* pNode,vector<int>& levelresult,vector<TreeNode*>& thisleveldata)
	{
    	 if(pNode->right!=NULL)
		 {
              AddResult(pNode,levelresult,thisleveldata);
	     }
		 else
		 {
		    TreeNode* pNext;
            if(pNode->left!=NULL)
            {
                pNext = pNode->left;
				thisleveldata.push_back(pNext);
	            levelresult.push_back(pNext->val);

			}

		}
	}
};

 

Binary Tree Level Order Traversal II

标签:

原文地址:http://www.cnblogs.com/xgcode/p/4541608.html

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