package Ġlinked list Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġ// Ġhttps :// leetcode - cn . com / problems / intersection - of - two - linked - lists / ĊĠĠĠ Ġ// Ġ 1 6 0 . Ġ çĽ¸ äº¤ éĵ¾è¡¨ Ċ } Ċ Ċ /** Ċ Ġ* Ġset Ġ è§£ æ³ķ Ċ Ġ*/ Ċ fun Ġget Intersection Node ( head A : ListNode ?, Ġhead B : ListNode ?): ListNode ? Ġ{ ĊĠĠĠ Ġval Ġset Ġ= Ġmutable Set Of < ListNode >() ĊĠĠĠ Ġvar Ġcur A Ġ= Ġhead A ĊĠĠĠ Ġwhile Ġ( cur A Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset . add ( cur A ) ĊĠĠĠĠĠĠĠ Ġcur A Ġ= Ġcur A . next ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcur B Ġ= Ġhead B ĊĠĠĠ Ġwhile Ġ( cur B Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cur B Ġin Ġset ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcur B ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcur B Ġ= Ġcur B . next ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġnull Ċ } Ċ Ċ /** Ċ Ġ* Ġ åıĮ æĮĩéĴĪ è§£ æ³ķ Ċ Ġ*/ Ċ fun Ġget Intersection Node 1 ( head A : ListNode ?, Ġhead B : ListNode ?): ListNode ? Ġ{ ĊĠĠĠ Ġif Ġ( head A Ġ== Ġnull Ġ|| Ġhead B Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġp A Ġ= Ġhead A ĊĠĠĠ Ġvar Ġp B Ġ= Ġhead B ĊĊĠĠĠ Ġ// Ġå¦Ĥæŀľ ä¸¤ä¸ª éĵ¾è¡¨ çĽ¸ äº¤ ï¼Į åĪĻ ä¼ļ åľ¨ Ġp A Ġ== Ġp B Ġ== Ġ çĽ¸ äº¤ èĬĤçĤ¹ ĠæĹ¶ æİ¨ åĩº å¾ªçİ¯ ĊĠĠĠ Ġ// Ġå¦Ĥæŀľ ä¸¤ä¸ª éĵ¾è¡¨ ä¸į çĽ¸ äº¤ ï¼Į åĪĻ ä¼ļ åľ¨ Ġp A Ġ== Ġp B Ġ== Ġnull ĠæĹ¶ éĢĢåĩº å¾ªçİ¯ ĊĠĠĠ Ġwhile Ġ( p A Ġ!= Ġp B ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( p A Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp A Ġ= Ġhead B ĊĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp A Ġ= Ġp A . next ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( p B Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp B Ġ= Ġhead A ĊĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp B Ġ= Ġp B . next ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġp A Ċ }