您的位置:首页 > 其它

LeetCode_binary-tree-zigzag-level-order-traversal

2015-09-07 19:18 405 查看
原题链接: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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: