package Ġchallenges . cr ack ing _ coding _ inter view . linked _ list . remove _ d ups Ċ Ċ import Ġchallenges . data _ structure . LinkedList Node ĊĊ Ċ /* Ċ Write Ġcode Ġto Ġremove Ġduplicates Ġfrom Ġan Ġun sorted Ġlinked Ġlist . Ċ FOLLOW ĠUP Ċ How Ġwould Ġyou Ġsolve Ġthis Ġproblem Ġif Ġa Ġtemporary Ġbuffer Ġis Ġnot Ġallowed ? Ċ Ġ*/ Ċ object ĠRemove Dup B Ġ{ ĊĠĠĠ Ġprivate Ġfun Ġdelete Dup ( head : ĠLinkedList Node ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Ġ= Ġhead ĊĠĠĠĠĠĠĠ Ġwhile Ġ( current Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĠRemove Ġall Ġfuture Ġnodes Ġthat Ġhave Ġthe Ġsame Ġvalue Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrunner Ġ= Ġcurrent !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( runner . next Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( runner . next !!. data Ġ== Ġcurrent . data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrunner . next Ġ= Ġrunner . next !!. next ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrunner Ġ= Ġrunner . next !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Ġ= Ġcurrent . next ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfirst Ġ= ĠLinkedList Node ( 0 , Ġnull , Ġnull ) Ġ// Ass orted Methods . random LinkedList ( 1 0 0 0 , Ġ 0 , Ġ 2 ); ĊĠĠĠĠĠĠĠ Ġval Ġhead Ġ= Ġfirst ĊĠĠĠĠĠĠĠ Ġvar Ġsecond Ġ= Ġfirst ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. 7 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsecond Ġ= ĠLinkedList Node ( i Ġ% Ġ 2 , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst . next Ġ= Ġsecond ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsecond . prev Ġ= Ġfirst ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Ġ= Ġsecond ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln ( head . print Forward ()) ĊĠĠĠĠĠĠĠ Ġdelete Dup ( head ) ĊĠĠĠĠĠĠĠ Ġprintln ( head . print Forward ()) ĊĠĠĠ Ġ} Ċ }