A beneficio di tutti gli utenti del Forum pubblico la soluzione del problema.

codice:
program ScritturaDiUnaListaSimmetrica(input,output);
label 99;
const bell=07;
type punt=^elem;
     elem= record
                 val: integer;
                 back : punt;
                 next : punt;
           end;
var p,q : punt;
    m : integer;

    procedure LeggiEScriviLista( var p,q : punt; k : integer);
    begin
         if k=0
         then p:=nil
         else begin
                   new(p);
                   read(p^.val);
                   write(p^.val,' ');
                   new(q);
                   read(q^.val);
                   p^.back:=q;
                   write(q^.val,' ');
                   LeggiEScriviLista(q,p^.back,k-1);
              end;
    end;{ Fine procedura LeggiEScriviLista }

     
{ Corpo del programma }

begin
     writeln('------------------------- Dati di ingresso --------------------------');
     writeln;
     write('Fornire la lunghezza della lista: ');
     readln(m);
     writeln;
     if m>=20 then begin
                        writeln(chr(bell),'Errore nei dati di ingresso!- STOP -');
                        goto 99;
                   end
              else begin
                        writeln('Fornire la lista: ');
                        writeln;
                        LeggiEScriviLista(q,p,m);
                   end;
     99 :
     readln;
     
end.
Grazie a Tutti.