class ĠLinkedList < T > Ġ{ ĊĠĠĠ Ġprivate Ġdata Ġclass ĠNode < T >( ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ: ĠT , ĊĠĠĠĠĠĠĠ Ġvar Ġnext : ĠNode < T >? Ġ= Ġnull ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġvar Ġfront : Node < T >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġback : Node < T >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcapacity : Int Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġpush Front ( value Ġ: ĠT ){ ĊĠĠĠĠĠĠĠ Ġval ĠnewNode Ġ= ĠNode < T >( value Ġ= Ġvalue ) ĊĠĠĠĠĠĠĠ Ġif ( back == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback Ġ= ĠnewNode ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠnewNode . next Ġ= Ġfront ĊĠĠĠĠĠĠĠ Ġfront Ġ= ĠnewNode ĊĠĠĠĠĠĠĠ Ġcapacity ++ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpush Back ( value Ġ: ĠT ){ ĊĠĠĠĠĠĠĠ Ġval ĠnewNode Ġ= ĠNode < T >( value Ġ= Ġvalue ) ĊĠĠĠĠĠĠĠ Ġif ( front Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfront Ġ= ĠnewNode ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġback ?. next Ġ= ĠnewNode ĊĠĠĠĠĠĠĠ Ġback Ġ= ĠnewNode ĊĠĠĠĠĠĠĠ Ġcapacity ++ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprint List (){ ĊĠĠĠĠĠĠĠ Ġvar Ġiterator : ĠNode < T >? Ġ= Ġfront ĊĠĠĠĠĠĠĠ Ġwhile ( iterator != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("${ iterator . value } Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiterator Ġ= Ġiterator . next ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠisEmpty () Ġ: ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcapacity Ġ== Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfind ( value Ġ: ĠT ): ĠBoolean { ĊĠĠĠĠĠĠĠ Ġvar Ġit : ĠNode < T >? Ġ= Ġfront ĊĠĠĠĠĠĠĠ Ġwhile ( it != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . value Ġ== Ġvalue ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ= Ġit . next ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġlist Ġ= Ġ ĠLinkedList < Int >() ĊĠĠĠ Ġlist . push Front ( 3 ) ĊĠĠĠ Ġlist . push Front ( 4 ) ĊĠĠĠ Ġlist . push Back ( 1 ) ĊĠĠĠ Ġlist . print List () ĊĠĠĠ Ġprintln ( list . find ( 2 )) Ċ }