Задача:
Определить есть ли в дереве хотя бы 2 одинаковых элемента.

вот что я нарешал, но не работает

program tree2;
uses crt;
type PTree = ^TTree;
TTree = record
info:integer;
left,right:PTree;
end;
var tree,root,p,parent:PTree;
selekt,g,key:integer;
k,i:byte;

function getint(ident:string):integer;
var s:byte;
begin
randomize;
write('BBEDUTE ', ident,' = ');
readln(s);
getint:=s ;
end;

function find(root:PTree;key:integer;var p,parent: PTree):boolean ;
begin
p:=root;
while p<>nil do
begin
if key =p^.info then
begin find := true;
exit
end;
parent := p;
if key < p^.info
then p:= p^.left
else p:= p^.right;
end;
find:=false;
end;

procedure addelem(var root:PTree;info:integer);
var elem:PTree;
begin

if (root=NIL) then {ECJIU DEPEBO nYCTOE , TO }
begin
new(elem);
elem^.left:=nil;
elem^.right:=nil;
elem^.info:=info;
root:=elem;
if find(root , key , p , parent) then
begin
writeln('TAKOU ELEM EGE ECTb');
inc(g);
writeln('ELEM ',p^.info,'POVTORUJIC9I', g,' PA3');

end
else
begin
if (info<root^.info) then
addelem(root^.left,info)
else
addelem(root^.right,info);
end;
end;
end;
begin
clrscr;

tree:=nil ;
writeln('1- Do6aBuTb EJIEM B DEPEBO') ;
readln(selekt);
case selekt of
1:begin
writeln('CkoJIbko EJIEM HYGHO BBECTU');
readln(k);
g:=0;
for i:=1 to k do

begin
addelem(tree,getint ('EJIMEHT DJI9I DO6ABJIEHU9I'));
end;
end;
end;
readln;
END.


не получается проверка на равенство и вывод результата на экран