107. 二叉树的层序遍历 II
难度:中等
给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
class Solution {
public:
vector<vector<int>> levelOrderBottom(TreeNode* root) {
vector<vector<int>> res;
if(!root)return res;
vector<int> v;
queue<TreeNode*> q;
q.push(root);
TreeNode *cur;
int size;
while(!q.empty()){
size = q.size();
while(size--){
cur = q.front();
q.pop();
v.push_back(cur->val);
if(cur->left)q.push(cur->left);
if(cur->right)q.push(cur->right);
}
res.push_back(v);
v.clear();
}
reverse(res.begin(),res.end());
return res;
}
};
执行结果:
通过
执行用时:
4 ms, 在所有 C++ 提交中击败了73.41%的用户
内存消耗:
12.2 MB, 在所有 C++ 提交中击败了68.50%的用户
通过测试用例:
34 / 34