#include<iostream>
using namespace std;
typedef struct BTNode{
int data;
struct BTNode *lchild, *rchild;
}BTNode, *BiTree;
BTNode solve(int f[], int mid[], int f1, int f2, int m1, int m2){
BTNode *root;
root = (BTNode *)malloc(sizeof(BTNode));
root->data=f[f1];
int i=m1;
for(i ; mid[i]!=f[f1];i++);
int len1=i-m1-1;//左边结点数
int len2=m2-i+1;
if(len1){
root->lchild=solve(f, mid, f1+1, f1+len1, m1, m1+len1-1);
}
else root->lchild=NULL;
if(len2){
root->lchild=solve(f, mid, f2-len2+1, f2, m2-len2+1, m2);
}
else root->rchild=NULL;
return root;
}
int main()
{
BiTree T;
*T=solve(f, mid, f1, f2, m1, m2);
return 0;
}