package Ġcom . cross bow ff s . cc ik otlin . chapter 2 Ċ Ċ import Ġcom . cross bow ff s . cc ik otlin . utils . do Assert Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠChecks Ġwhether Ġthe Ġgiven Ġlinked Ġlist Ġis Ġa Ġpal indrome Ġ-- Ċ Ġ* Ġthat Ġis , Ġthe Ġfirst Ġnode Ġis Ġequal Ġto Ġthe Ġlast Ġnode , Ġthe Ċ Ġ* Ġsecond Ġnode Ġis Ġequal Ġto Ġthe Ġnode Ġbefore Ġthe Ġlast Ġnode , Ġetc . Ċ Ġ*/ Ċ fun Ġpal indrome ( head : ĠLinked Node < Int >? ): ĠBoolean Ġ{ ĊĠĠĠ Ġ// ĠWe Ġiterate Ġthe Ġlist Ġuntil Ġwe Ġreach Ġthe Ġmiddle Ġnode , ĊĠĠĠ Ġ// Ġpushing Ġeach Ġelement Ġas Ġwe Ġgo Ġonto Ġa Ġstack . ĠAfter ĊĠĠĠ Ġ// Ġre aching Ġthe Ġmiddle Ġnode , Ġwe Ġkeep Ġiter ating Ġwhile ĊĠĠĠ Ġ// Ġcomparing Ġthe Ġcurrent Ġelement Ġwith Ġthe Ġtop Ġof Ġthe Ġstack . ĊĠĠĠ Ġ// ĠIf Ġall Ġelements Ġpair Ġup , Ġthe Ġlist Ġforms Ġa Ġpal indrome . ĊĠĠĠ Ġ// ĠWe Ġneed Ġto Ġuse Ġa Ġ" front " Ġand Ġ" back " Ġpointer Ġto Ġdetermine ĊĠĠĠ Ġ// Ġthe Ġmiddle Ġnode Ġ-- Ġonce Ġthe Ġback Ġpointer Ġis Ġnull , Ġthe ĊĠĠĠ Ġ// Ġfront Ġpointer Ġis Ġat Ġthe Ġmiddle . ĊĠĠĠ Ġval Ġstack Ġ= ĠArray Deque < Int >() ĊĠĠĠ Ġvar Ġfront Ġ= Ġhead ĊĠĠĠ Ġvar Ġback Ġ= Ġhead ĊĠĠĠ Ġwhile Ġ( back Ġ!= Ġnull Ġ&& Ġback . next Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstack . push ( front !!. data ) ĊĠĠĠĠĠĠĠ Ġfront Ġ= Ġfront . next ĊĠĠĠĠĠĠĠ Ġback Ġ= Ġback . next !!. next ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( back Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfront Ġ= Ġfront !!. next ĊĠĠĠ Ġ} ĊĠĠĠ Ġwhile Ġ( front Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( stack . pop () Ġ!= Ġfront . data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfront Ġ= Ġfront . next ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġdo Assert ( pal indrome ( link edList Of ())) ĊĠĠĠ Ġdo Assert ( pal indrome ( link edList Of ( 1 ))) ĊĠĠĠ Ġdo Assert ( pal indrome ( link edList Of ( 1 , Ġ 1 ))) ĊĠĠĠ Ġdo Assert ( pal indrome ( link edList Of ( 1 , Ġ 2 , Ġ 2 , Ġ 1 ))) ĊĠĠĠ Ġdo Assert ( pal indrome ( link edList Of ( 1 , Ġ 2 , Ġ 3 , Ġ 2 , Ġ 1 ))) ĊĠĠĠ Ġdo Assert (! pal indrome ( link edList Of ( 1 , Ġ 2 ))) ĊĠĠĠ Ġdo Assert (! pal indrome ( link edList Of ( 1 , Ġ 2 , Ġ 3 , Ġ 1 ))) Ċ } Ċ