package Ġwork . jo h nt sai ._ 0 0 2 _ add _ two _ numbers Ċ Ċ import Ġwork . jo h nt sai . utils . ListNode Ċ Ċ class ĠSolution Ġ{ ĊĠĠĠ Ġfun Ġadd Two Numbers ( l 1 : ĠListNode ?, Ġl 2 : ĠListNode ?): ĠListNode ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġnode 1 Ġ= Ġl 1 ĊĠĠĠĠĠĠĠ Ġvar Ġnode 2 Ġ= Ġl 2 ĊĊĠĠĠĠĠĠĠ Ġvar Ġnumber Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġfake Ġ= ĠListNode ( 0 ) ĊĠĠĠĠĠĠĠ Ġvar Ġresult : ĠListNode ? Ġ= Ġfake ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( node 1 Ġ!= Ġnull Ġ|| Ġnode 2 Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ/= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( node 1 Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ+= Ġnode 1 .` val ` ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode 1 Ġ= Ġnode 1 . next ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( node 2 Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ+= Ġnode 2 .` val ` ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode 2 Ġ= Ġnode 2 . next ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult ?. next Ġ= ĠListNode ( number Ġ% Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult ?. next ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( number / 1 0 Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult ?. next Ġ= ĠListNode ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfake . next ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġsolution Ġ= ĠSolution () ĊĊĠĠĠ Ġval Ġstart Ġ= ĠListNode ( 1 ) ĊĠĠĠ Ġval Ġsecond Ġ= ĠListNode ( 2 ) ĊĠĠĠ Ġval Ġend Ġ= ĠListNode ( 3 ) ĊĊĠĠĠ Ġstart . next Ġ= Ġsecond ĊĠĠĠ Ġsecond . next Ġ= Ġend ĊĊĠĠĠ Ġval Ġstart 1 Ġ= ĠListNode ( 3 ) ĊĠĠĠ Ġval Ġsecond 1 Ġ= ĠListNode ( 2 ) ĊĠĠĠ Ġval Ġthird 1 Ġ= ĠListNode ( 9 ) ĊĠĠĠ Ġval Ġend 1 Ġ= ĠListNode ( 1 ) ĊĊĠĠĠ Ġstart 1 . next Ġ= Ġsecond 1 ĊĠĠĠ Ġsecond 1 . next Ġ= Ġthird 1 ĊĠĠĠ Ġthird 1 . next Ġ= Ġend 1 ĊĊĠĠĠ Ġval Ġadd Two Numbers Ġ= Ġsolution . add Two Numbers ( start , Ġstart 1 ) ĊĊĠĠĠ Ġif Ġ( add Two Numbers Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġnode Ġ= Ġadd Two Numbers ĊĠĠĠĠĠĠĠ Ġwhile Ġ( node Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( node .` val `) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode Ġ= Ġnode . next ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊ Ċ }