BT Level Order
普通level order一个队列,区分强推编程之美vector模拟队列解法,于是再次联系了这个漂亮的算法。
另外学校到reverse其实里面可以是一个别的类型,未必是基本数据类型 ,总之是把外部容器里的元素逆置,只要原始都是一样类型就可以了,vector也肯定都是装一种东西的。
class Solution {
public:
vector<vector<int> > levelOrderBottom(TreeNode *root) {
vector<TreeNode* > vec;
vector<vector<int> > alllevel;
vector<int> level;
if(root==NULL)
return alllevel;
vec.push_back(root);
level.push_back(root->val);
alllevel.push_back(level);
int cur=0,last;
while(cur<vec.size())
{
last=vec.size();
level.clear();
while(cur<last)
{
if(vec[cur]->left!=NULL)
vec.push_back(vec[cur]->left), level.push_back(vec[cur]->left->val);
if(vec[cur]->right!=NULL)
vec.push_back(vec[cur]->right), level.push_back(vec[cur]->right->val);
cur++;
}
if(level.size()>0)
alllevel.push_back(level);
//cout<<endl;
}
reverse(alllevel.begin(),alllevel.end());
return alllevel;
}
};