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;
end;
end;
照理说变量s对于每次递归调用都相当于一个新的s吧,可是我这里s的值却带到子递归函数里去了,大家看看是咋回事?(顺便说一句,这是根据二叉树的前序及中序遍历求后序遍历的程序 )

