原题链接:https://leetcode.com/problems/binary-tree-level-order-traversal/
思路:使用两个队列
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> floor;
vector<int> vec;
queue<TreeNode* > que1,que2;
if(root)
{
que1.push(root);
while(!que1.empty() || !que2.empty())
{
while(!que1.empty())
{
root = que1.front();
vec.push_back(root->val);
que1.pop();
if(root->left)
que2.push(root->left);
if(root->right)
que2.push(root->right);
}
floor.push_back(vec);
vec.clear();
while(!que2.empty())
{
root = que2.front();
vec.push_back(root->val);
que2.pop();
if(root->left)
que1.push(root->left);
if(root->right)
que1.push(root->right);
}
if(!vec.empty())
{
floor.push_back(vec);
vec.clear();
}
}
}
return floor;
}
};