我尝试了很多次这个问题,但是我不知道我的代码有什么问题, 请帮助我找到一个错误,
问题参考: https://www.interviewbit.com/problems/zigzag-level-order-traversal-bt/ https://www.geeksforgeeks.org/zigzag-tree-traversal/
vector<vector<int>> Solution::zigzagLevelOrder(TreeNode* root) {
vector<vector<int>> vf;
vector<int> v;
if(A==NULL){
return vf;
}
TreeNode* temp=A;
bool turn=false;
stack<TreeNode*> s1;
stack<TreeNode*> s2;
s1.push(temp);
while(!s1.empty()||!s2.empty()){
if(turn==false){
while(!s1.empty()){
TreeNode* node=s1.top();
v.push_back(node->val);
if(node->left!=NULL){
s2.push(node->left);
}
if(node->right!=NULL){
s2.push(node->right);
}
s1.pop();
}
if(s1.empty()){
turn=true;
}
}
else if(turn==true){
while(!s2.empty()){
TreeNode* node=s2.top();
v.push_back(node->val);
if(node->left!=NULL){
s1.push(node->right);}
if(node->right!=NULL){
s1.push(node->left);}
s2.pop();
}
if(s2.empty()){
turn=false;
}
}
vf.push_back(v);
v.clear();
}
return vf;
}