首先从顶点a出发,沿父指针将a至根的路径上的所有顶点设访问标志。然后从b顶点出发,沿父指针追溯到第1个已访问的顶点b,该顶点即为a和b的最近公共祖先。varn,rt,a,b,i:integer;{顶点数为n,根为rt}l,r,pt:array[0..max]of integer; {左儿子序列、右儿子序列和父指针序列,其中顶点I的左儿子为l、右儿子为r、父指针为pt}vt:array[1..max]of boolean;{访问序列,其中vt为顶点I的访问标志}
readln(f,n,rt);{输入顶点数及其根} for i:=1 to n do
begin
read |