#include <bits/stdc++.h>
using namespace std;
struct TreeNode{
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int val):left(nullptr),right(nullptr),val(val){};
};
vector<vector<int>>spiral(TreeNode* root){
vector<vector<int>>ans;
if(root == nullptr)return ans;
queue<TreeNode*>q;
q.push(root);
bool trn = false;
while(!q.empty()){
int sz = q.size();
vector<int>lvl;
for(int i = 0;i<sz;i++){
auto u = q.front();
q.pop();
lvl.push_back(u->val);
if(u->left){
q.push(u->left);
}
if(u->right){
q.push(u->right);
}
}
if(trn)reverse(lvl.begin(),lvl.end());
ans.push_back(lvl);
trn = !trn;
}
return ans;
}
TreeNode* buildTree(){
int x;cin>>x;
if(x == -1)return nullptr;
TreeNode* root = new TreeNode(x);
queue<TreeNode*>q;
q.push(root);
while(!q.empty()){
auto u = q.front();
q.pop();
if(cin>>x && x!=-1){
u->left=new TreeNode(x);
q.push(u->left);
}
if(cin>>x && x!=-1){
u->right=new TreeNode(x);
q.push(u->right);
}
}
return root;
}
int main() {
TreeNode* root = buildTree();
vector<vector<int>>ans = spiral(root);
for(auto &x : ans){
for(auto &y:x){
cout<<y<<" ";
}
cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCBUcmVlTm9kZXsKCWludCB2YWw7CglUcmVlTm9kZSogbGVmdDsKCVRyZWVOb2RlKiByaWdodDsKCVRyZWVOb2RlKGludCB2YWwpOmxlZnQobnVsbHB0cikscmlnaHQobnVsbHB0ciksdmFsKHZhbCl7fTsKfTsKdmVjdG9yPHZlY3RvcjxpbnQ+PnNwaXJhbChUcmVlTm9kZSogcm9vdCl7Cgl2ZWN0b3I8dmVjdG9yPGludD4+YW5zOwoJaWYocm9vdCA9PSBudWxscHRyKXJldHVybiBhbnM7CgkKCXF1ZXVlPFRyZWVOb2RlKj5xOwoJcS5wdXNoKHJvb3QpOwoJYm9vbCB0cm4gPSBmYWxzZTsKCXdoaWxlKCFxLmVtcHR5KCkpewoJCWludCBzeiA9IHEuc2l6ZSgpOwoJCXZlY3RvcjxpbnQ+bHZsOwoJCWZvcihpbnQgaSA9IDA7aTxzejtpKyspewoJCQlhdXRvIHUgPSBxLmZyb250KCk7CgkJCXEucG9wKCk7CgkJCWx2bC5wdXNoX2JhY2sodS0+dmFsKTsKCQkJaWYodS0+bGVmdCl7CgkJCQlxLnB1c2godS0+bGVmdCk7CgkJCX0KCQkJCgkJCWlmKHUtPnJpZ2h0KXsKCQkJCXEucHVzaCh1LT5yaWdodCk7CgkJCX0KCQl9CgkJaWYodHJuKXJldmVyc2UobHZsLmJlZ2luKCksbHZsLmVuZCgpKTsKCQlhbnMucHVzaF9iYWNrKGx2bCk7CgkJdHJuID0gIXRybjsKCX0KCXJldHVybiBhbnM7Cn0KVHJlZU5vZGUqIGJ1aWxkVHJlZSgpewoJaW50IHg7Y2luPj54OwoJaWYoeCA9PSAtMSlyZXR1cm4gbnVsbHB0cjsKCVRyZWVOb2RlKiByb290ID0gbmV3IFRyZWVOb2RlKHgpOwoJCglxdWV1ZTxUcmVlTm9kZSo+cTsKCXEucHVzaChyb290KTsKCQoJd2hpbGUoIXEuZW1wdHkoKSl7CgkJYXV0byB1ID0gcS5mcm9udCgpOwoJCXEucG9wKCk7CgkJCgkJaWYoY2luPj54ICYmIHghPS0xKXsKCQkJdS0+bGVmdD1uZXcgVHJlZU5vZGUoeCk7CgkJCXEucHVzaCh1LT5sZWZ0KTsKCQl9CgkJCgkJCWlmKGNpbj4+eCAmJiB4IT0tMSl7CgkJCXUtPnJpZ2h0PW5ldyBUcmVlTm9kZSh4KTsKCQkJcS5wdXNoKHUtPnJpZ2h0KTsKCQl9Cgl9CglyZXR1cm4gcm9vdDsKfQppbnQgbWFpbigpIHsKCVRyZWVOb2RlKiByb290ID0gYnVpbGRUcmVlKCk7Cgl2ZWN0b3I8dmVjdG9yPGludD4+YW5zID0gc3BpcmFsKHJvb3QpOwoJZm9yKGF1dG8gJnggOiBhbnMpewoJCWZvcihhdXRvICZ5OngpewoJCQljb3V0PDx5PDwiICI7CgkJfQoJCWNvdXQ8PGVuZGw7Cgl9CglyZXR1cm4gMDsKfQ==