原题链接:https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/
class Solution {
public:
vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
vector<vector<int>> floor;
vector<int> vec,temp;
queue<TreeNode* > que1,que2;
if(root)
{
que1.push(root);
while(!que1.empty() || !que2.empty())
{
while(!que1.empty())
{
root = que1.front();
que1.pop();
vec.push_back(root->val);
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();
que2.pop();
vec.push_back(root->val);
if(root->left)
que1.push(root->left);
if(root->right)
que1.push(root->right);
}
if(!vec.empty())
{
while(!vec.empty())
{
temp.push_back(vec.back());
vec.pop_back();
}
floor.push_back(temp);
temp.clear();
}
}
}
return floor;
}
};