class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> res;
deque<TreeNode*> deque1;
vector<int> rowRes;
if(root == nullptr)
{
return res;
}
deque1.push_back(root);
int count = 1;
int nextCount = 0;
while(!deque1.empty())
{
TreeNode* temp = deque1.front();
deque1.pop_front();
count --;
rowRes.push_back(temp -> val);
if(temp -> left != nullptr)
{
deque1.push_back(temp -> left);
nextCount ++;
}
if(temp -> right != nullptr)
{
deque1.push_back(temp -> right);
nextCount ++;
}
if(count == 0)
{
count = nextCount;
nextCount = 0;
res.push_back(rowRes);
rowRes.clear();
}
}
return res;
}
};