c++11 - ZigZag 水平顺序遍历 BT
问题描述
我多次尝试这个问题,但我不知道我的代码有什么问题,请帮我找到这个问题,
问题参考: 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;
}
解决方案
推荐阅读
- java - 使用 mockito 模拟来自返回 ByteBuffer 的方法的响应
- python - Python 将 .dcm 转换为 .png,图像太亮
- angularjs - 使用另一个 $scope 变量显示一个 $scope 变量
- ios - 从项目中删除所有 cocoapod 依赖项
- javascript - 如何从 React 中的初始状态过滤多次
- java - 在 WebView 内对齐 ImageView
- javascript - 将函数应用于对象中的每个键值对
- linux-kernel - 内核错误:IRQ 重映射不支持 X2APIC 模式,禁用 x2apic
- c++ - C++ 类中的 C++ 命名空间声明
- ruby-on-rails - 如何使用 ruby Aws::Lambda::Client SDK 存根响应