```cpp
```cpp
#include<bits/stdc++.h>
using namespace std;
typedef struct TreeNode {
char val;
struct TreeNode *lchild;
struct TreeNode *rchild;
} TNode,*Tree;
TNode* Re_Build_Tree(string pos,string in,int n) {
if(n==0)return NULL;
string rpos,lpos,rin,lin;
int root=-1;
TNode*node=(TNode*)malloc(sizeof(TNode));
if(node==NULL)
return NULL;
node->val=pos[n-1];
for(int i=0; i<n; i++) {
if(in[i]==pos[n-1]) {
root=i;
break;
}
}
int lnum=0,rnum=0;
for(int i=0; i<root; i++) {
lin[lnum++]=in[i];
}
for(int i=root+1; i<n; i++) {
rin[rnum++]=in[i];
}
for(int i=0; i<lnum; i++) {
lpos[i]=pos[i];
}
for(int i=0; i<rnum; i++) {
rpos[i]=pos[lnum+i];
}
node->lchild=Re_Build_Tree(lpos,lin,lnum);
node->rchild=Re_Build_Tree(rpos,rin,rnum);
return node;
}
void display(TNode*node) {
if(node!=NULL) {
cout<<node->val;
display(node->lchild);
display(node->rchild);
}
}
int main() {
string pos,in;
cin>>in>>pos;
Tree node=Re_Build_Tree(pos,in,in.length());
display(node);
return 0;
}