function solve(dlr,ldr:
string):
string;
var k:integer;
s:string;
begin
if (dlr<>
'')
and (ldr<>
'')
then
begin
k:=pos(dlr[1],ldr);
s:=solve(copy(dlr,2,k-
1),copy(ldr,
1,k-
1));
s:=s+solve(copy(dlr,k+1,length(dlr)-k),copy(ldr,k+
1,length(ldr)-k));
s:=s+ldr[k];
end;
end;
照理说变量s对于每次递归调用都相当于一个新的s吧,可是我这里s的值却带到子递归函数里去了,大家看看是咋回事?(顺便说一句,这是根据二叉树的前序及中序遍历求后序遍历的程序

)