您的位置:首页 > 其它

leetcode 刷刷刷

2015-09-29 22:33 405 查看
https://leetcode.com/problems/binary-tree-level-order-traversal-ii/

class Solution {

public:
vector<vector<int>> levelOrderBottom(TreeNode* root) {
vector<vector<int> >ret;

queue<TreeNode*> Q1;
queue<int> Q2;
if(root){
Q1.push(root);
Q2.push(1);
}
int lastlevel = 0;
while(!Q1.empty()){
TreeNode * r = Q1.front(); Q1.pop();
int level = Q2.front();Q2.pop();
printf("%d\n", level);
if(level!=lastlevel){
vector<int> tmp;
tmp.push_back(r->val);
ret.insert(ret.begin(), tmp);
}
else{
ret[0].push_back(r->val);
}
lastlevel = level;
if(r->left){
Q1.push(r->left);
Q2.push(level+1);
}
if(r->right){
Q1.push(r->right);
Q2.push(level+1);
}
}
return ret;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: