package Ġlists Ċ Ċ /** Ċ Ġ* ĠRe ver ses Ġthe Ġlist Ġwith Ġone Ġloop . Ċ Ġ*/ Ċ fun Ġ< T > ĠLinkedList < T >. reverse () Ġ{ ĊĠĠĠ Ġvar Ġpointer Ġ= Ġhead ĊĠĠĠ Ġvar Ġcurrent : ĠLinkedList < T >. Node ? ĊĠĠĠ Ġvar Ġprevious : ĠLinkedList < T >. Node ? Ġ= Ġnull ĊĊĠĠĠ Ġwhile Ġ( pointer Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Ġ= Ġpointer ĊĠĠĠĠĠĠĠ Ġpointer Ġ= Ġpointer . next ĊĊĠĠĠĠĠĠĠ Ġcurrent . next Ġ= Ġprevious ĊĠĠĠĠĠĠĠ Ġprevious Ġ= Ġcurrent ĊĠĠĠĠĠĠĠ Ġhead Ġ= Ġcurrent ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġnew Ġdistinct Ġlist Ġ( no Ġduplicates ) Ġwith Ġthe Ġsame Ġorder Ġin Ġ` O ( n )`. Ċ Ġ*/ Ċ fun Ġ< T > ĠLinkedList < T >. distinct (): ĠLinkedList < T > Ġ{ ĊĠĠĠ Ġval Ġset Ġ= Ġmutable Set Of < T >() ĊĠĠĠ Ġval Ġlist Ġ= ĠLinkedList < T >() ĊĠĠĠ Ġvar Ġcurrent Ġ= Ġhead ĊĊĠĠĠ Ġwhile Ġ( current Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( set . add ( current . value )) Ġlist . add ( current . value ) ĊĠĠĠĠĠĠĠ Ġcurrent Ġ= Ġcurrent . next ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġlist Ċ } Ċ