#include <iostream>
#include <cstdio>
#include <stdlib.h>
using namespace std;
struct node
{
int data;
struct node* left;
struct node* right;
};
struct node* newNode(int data)
{
struct node* new_node=(struct node*)malloc(sizeof(struct node));
new_node->data=data;
new_node->left=NULL;
new_node->right=NULL;
return new_node;
}
void inorder(struct node* root)
{
if(root==NULL) return;
inorder(root->left);
cout<<root->data;
inorder(root->right);
}
int main() {
struct node* root = newNode(1);
root->left= newNode(2);
root->right= newNode(3);
root->left->left= newNode(4);
root->left->right= newNode(5);
inorder(root);
//mirror(root);
//inorder(root);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8c3RkbGliLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG5vZGUgCnsKCWludCBkYXRhOwoJc3RydWN0IG5vZGUqIGxlZnQ7CglzdHJ1Y3Qgbm9kZSogcmlnaHQ7Cn07CgpzdHJ1Y3Qgbm9kZSogbmV3Tm9kZShpbnQgZGF0YSkKewoJc3RydWN0IG5vZGUqIG5ld19ub2RlPShzdHJ1Y3Qgbm9kZSopbWFsbG9jKHNpemVvZihzdHJ1Y3Qgbm9kZSkpOwoJbmV3X25vZGUtPmRhdGE9ZGF0YTsKCW5ld19ub2RlLT5sZWZ0PU5VTEw7CgluZXdfbm9kZS0+cmlnaHQ9TlVMTDsKCXJldHVybiBuZXdfbm9kZTsKfQoKdm9pZCBpbm9yZGVyKHN0cnVjdCBub2RlKiByb290KQp7CglpZihyb290PT1OVUxMKSByZXR1cm47CgkKCWlub3JkZXIocm9vdC0+bGVmdCk7Cgljb3V0PDxyb290LT5kYXRhOwoJaW5vcmRlcihyb290LT5yaWdodCk7Cn0KaW50IG1haW4oKSB7CgkKICBzdHJ1Y3Qgbm9kZSogcm9vdCA9IG5ld05vZGUoMSk7CiAgcm9vdC0+bGVmdD0gbmV3Tm9kZSgyKTsKICByb290LT5yaWdodD0gbmV3Tm9kZSgzKTsKICByb290LT5sZWZ0LT5sZWZ0PSBuZXdOb2RlKDQpOwogIHJvb3QtPmxlZnQtPnJpZ2h0PSBuZXdOb2RlKDUpOwogICAKICBpbm9yZGVyKHJvb3QpOwogIC8vbWlycm9yKHJvb3QpOwogIC8vaW5vcmRlcihyb290KTsKICAKICByZXR1cm4gMDsKfQ==