/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<vector<int> > res;
vector<vector<int> > levelOrder(TreeNode *root) {
queue<TreeNode*> mq1;
queue<TreeNode*> mq2;
if(root==NULL)
{
return res;
}
mq1.push(root);
while((!mq1.empty())||(!mq2.empty()))
{
if(mq1.empty())
{
//pop mq2 and fill mq1
vector<int> tmp;
while(!mq2.empty())
{
TreeNode* nn=mq2.front();
mq2.pop();
tmp.push_back(nn->val);
if(nn->left!=NULL)
{
mq1.push(nn->left);
}
if(nn->right!=NULL)
{
mq1.push(nn->right);
}
}
res.push_back(tmp);
}
else
{
//pop mq1 and fill mq2
vector<int> tmp;
while(!mq1.empty())
{
TreeNode* nn=mq1.front();
mq1.pop();
tmp.push_back(nn->val);
if(nn->left!=NULL)
{
mq2.push(nn->left);
}
if(nn->right!=NULL)
{
mq2.push(nn->right);
}
}
res.push_back(tmp);
}
}
return res;
}
};
Binary Tree Level Order Traversal
最新推荐文章于 2024-10-15 19:28:18 发布