Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example:
Given binary tree [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
For example:
Given binary tree [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> levelHolder;
if(root==NULL)
return levelHolder;
vector<int>* aLvl = new vector<int>();
deque<TreeNode*> Q;
Q.push_back(root);
Q.push_back(NULL);
while(!Q.empty())
{
TreeNode *n = Q.front();
Q.pop_front();
if(n!=NULL)
{
aLvl->push_back(n->val);
if(n->left!=NULL)
Q.push_back(n->left);
if(n->right!=NULL)
Q.push_back(n->right);
}
else
{
levelHolder.push_back(*aLvl);
aLvl = new vector<int>();
Q.push_back(NULL);
}
if(n==NULL && Q.size()==1)
break;
}
return levelHolder;
}
};