/** Ċ Ġ* ĠGiven Ġa Ġlinked Ġlist , Ġreturn Ġthe Ġnode Ġwhere Ġthe Ġcycle Ġbegins . ĠIf Ġthere Ġis Ġno Ġcycle , Ġreturn Ġnull . Ċ Ġ* Ċ Ġ* ĠNote : ĠDo Ġnot Ġmodify Ġthe Ġlinked Ġlist . Ċ Ġ* Ċ Ġ* ĠFollow Ġup : Ċ Ġ* ĠCan Ġyou Ġsolve Ġit Ġwithout Ġusing Ġextra Ġspace ? Ċ Ġ* Ċ Ġ* ĠWaiting Ġto Ġbe Ġjud ged . Ċ Ġ*/ Ċ class ĠLinkedList Cycle II Ġ{ ĊĊĠĠĠ Ġfun Ġdetect Cycle ( head : ĠListNode ?): ĠListNode ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġh Ġ= Ġhead ĊĠĠĠĠĠĠĠ Ġvar Ġslow Ġ= Ġhead ĊĠĠĠĠĠĠĠ Ġvar Ġfast Ġ= Ġhead ĊĠĠĠĠĠĠĠ Ġwhile Ġ( fast Ġ!= Ġnull Ġ&& Ġfast . next Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġslow Ġ= Ġslow ?. next ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfast Ġ= Ġfast . next ?. next ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( slow Ġ=== Ġfast ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( slow Ġ!== Ġhead ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh Ġ= Ġhead ?. next ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġslow Ġ= Ġslow ?. next ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġh ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠListNode ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ` val `: ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnext : ĠListNode ? Ġ= Ġnull ĊĠĠĠ Ġ) Ċ Ċ } Ċ