class Solution {
public:
//vector<vector<int>>v;
void solve(TreeNode* root, vector<vector<int>>&v)
{
vector<int>vec;
queue<TreeNode*>q;
if(root==NULL)
{
return;
}
else
{
q.push(root);
int size=0;
while(!q.empty())
{
size=q.size();
TreeNode *temp;
for(int i=0; i<size; i++){
temp=q.front();
q.pop();
vec.push_back(temp->val);
if(temp->left)
{
q.push(temp->left);
}
if(temp->right)
{
q.push(temp->right);
}
}
v.push_back(vec);
vec.clear();
}
}
}
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>>v;
solve (root,v);
return v;
}
};