data Ġclass ĠNode ( var Ġdata : ĠInt ) Ġ{ ĊĠĠĠ Ġvar Ġnext : ĠNode ? Ġ= Ġnull Ċ } Ċ Ċ fun Ġinsert ( head : ĠNode ?, Ġdata : ĠInt ): ĠNode Ġ{ ĊĠĠĠ Ġif Ġ( head Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNode ( data ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcurr : ĠNode ? Ġ= Ġhead ĊĠĠĠĠĠĠĠ Ġwhile Ġ( curr ?. next Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurr Ġ= Ġcurr . next ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcurr ?. next Ġ= ĠNode ( data ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġhead Ċ } Ċ Ċ fun Ġdisplay ( head : ĠNode ?) Ġ{ ĊĠĠĠ Ġvar Ġcurr : ĠNode ? Ġ= Ġhead ĊĠĠĠ Ġwhile Ġ( curr Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprint ( curr . data ) ĊĠĠĠĠĠĠĠ Ġprint (" Ġ") ĊĠĠĠĠĠĠĠ Ġcurr Ġ= Ġcurr . next ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġvar Ġhead : ĠNode ? Ġ= Ġnull ĊĠĠĠ Ġvar ĠN Ġ= ĠInteger . parseInt ( readLine ()) ĊĠĠĠ Ġwhile Ġ( N -- Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= ĠInteger . parseInt ( readLine ()) ĊĠĠĠĠĠĠĠ Ġhead Ġ= Ġinsert ( head , Ġelement ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġdisplay ( head ) Ċ } Ċ