{
if(a[r1].data!=b[r2].data) return false;
if(a[r1].num!=b[r2].num) return false;
else {
if(a[r1].num==1) {
int temp1=a[r1].Left,temp2=b[r2].Left;
if(a[r1].Right!=-1) temp1=a[r1].Right;
if(b[r2].Right!=-1) temp2=b[r2].Right;
return check(a,b,temp1,temp2);
}
else if(a[r1].num==2) {
if(a[r1].Left==b[r2].Left) return (check(a,b,a[r1].Left,b[r2].Left) && check(a,b,a[r1].Right,b[r2].Right));
return (check(a,b,a[r1].Left,b[r2].Right) && check(a,b,a[r1].Right,b[r2].Left));
}
return true;
}
}
又写了一遍,发现还有可以改进的地方,