class Solution {
public:
vector<vector<int>> levelOrderBottom(TreeNode* root) {
if(root==NULL)
{
return {};
}
TreeNode* p = root;
queue<TreeNode*> queue;
vector<vector<int>> res;
queue.push(p);
while(!queue.empty())
{
vector<int> temp = {};
int length= queue.size();
for(int i = 0;i<length;i++)
{
p=queue.front();
queue.pop();
temp.push_back(p->val);
if(p->left) queue.push(p->left);
if(p->right) queue.push(p->right);
}
res.insert(res.begin(),temp);
}
return res;
}
};