package Ġchallenges . cr ack ing _ coding _ inter view . linked _ list . sum _ lists Ċ Ċ import Ġchallenges . data _ structure . LinkedList Node ĊĊ Ċ object ĠSum Lists A Ġ{ ĊĠĠĠ Ġprivate Ġfun Ġadd Lists ( l 1 : ĠLinkedList Node , Ġl 2 : ĠLinkedList Node ): ĠLinkedList Node ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Lists ( l 1 , Ġl 2 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Lists ( l 1 : ĠLinkedList Node ?, Ġl 2 : ĠLinkedList Node ?, Ġcarry : ĠInt ): ĠLinkedList Node ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( l 1 Ġ== Ġnull Ġ&& Ġl 2 Ġ== Ġnull Ġ&& Ġcarry Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠLinkedList Node () ĊĠĠĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġcarry ĊĠĠĠĠĠĠĠ Ġif Ġ( l 1 Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ+= Ġl 1 . data ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( l 2 Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ+= Ġl 2 . data ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġresult . data Ġ= Ġvalue Ġ% Ġ 1 0 ĊĊĠĠĠĠĠĠĠ Ġ// ĠRe cur se ĊĠĠĠĠĠĠĠ Ġif Ġ( l 1 Ġ!= Ġnull Ġ|| Ġl 2 Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmore Ġ= Ġadd Lists ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl 1 ?. next , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl 2 ?. next , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ>= Ġ 1 0 ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . next Ġ= Ġmore ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlink edList ToInt ( node : ĠLinkedList Node ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( node !!. next Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ 1 0 Ġ* Ġlink edList ToInt ( node . next ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue Ġ+ Ġnode . data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġl A 1 Ġ= ĠLinkedList Node ( 9 , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġl A 2 Ġ= ĠLinkedList Node ( 9 , Ġnull , Ġl A 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġl A 3 Ġ= ĠLinkedList Node ( 9 , Ġnull , Ġl A 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġl B 1 Ġ= ĠLinkedList Node ( 1 , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġl B 2 Ġ= ĠLinkedList Node ( 0 , Ġnull , Ġl B 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġl B 3 Ġ= ĠLinkedList Node ( 0 , Ġnull , Ġl B 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġlist 3 Ġ= Ġadd Lists ( l A 1 , Ġl B 1 ) ĊĠĠĠĠĠĠĠ Ġprintln (" Ġ Ġ" Ġ+ Ġl A 1 . print Forward ()) ĊĠĠĠĠĠĠĠ Ġprintln ("+ Ġ" Ġ+ Ġl B 1 . print Forward ()) ĊĠĠĠĠĠĠĠ Ġprintln (" = Ġ" Ġ+ Ġlist 3 !!. print Forward ()) ĊĠĠĠĠĠĠĠ Ġval Ġl 1 Ġ= Ġlink edList ToInt ( l A 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġl 2 Ġ= Ġlink edList ToInt ( l B 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġl 3 Ġ= Ġlink edList ToInt ( list 3 ) ĊĠĠĠĠĠĠĠ Ġprint ("$ l 1 Ġ+ Ġ$ l 2 Ġ= Ġ$ l 3 \ n ") ĊĠĠĠĠĠĠĠ Ġprint ( l 1 . toString () Ġ+ Ġ" Ġ+ Ġ" Ġ+ Ġl 2 Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ( l 1 Ġ+ Ġl 2 )) ĊĠĠĠ Ġ} Ċ }