逆リストとmycode、それは質問の意味を満たしていません
参考:
アイデア:
1つの長鎖は行くと同じ長さに遭遇するかどうかを見てみましょう
クラスのソリューション(オブジェクト): DEF :getIntersectionNode(自己、headA、headB) "" " :タイプHEAD1、HEAD1:ListNode :RTYPE:ListNode """ もし ない headA か ないheadBは: 返さないなし デフCAL(ヘッド): カウント = 0 ながらヘッド: カウント + = 1 ヘッド = head.next 戻りカウント COUNTA = CAL(headA) countBが =CAL(headB) PLUS = COUNTA - countBが IF PLUS> 0: 一方PLUS: headA = headA.next PLUS - = 1。 左 = countBが 他: PLUS = ABS(PLUS) 一方PLUS: headB = headB.next PLUS。 - 1 = 左 = COUNTAは、 しばらくは左:#ここでは、2人は友人の同じペースを持っているのでheadAは、友達になれるかどうかheadBです もし headA == headB: 返すheadA headA = headA.next headB = headB.next 左 - = 1 の戻りなしに
2ショートリストから、さらに、ほんの数ステップの長鎖の差の長さに沿って鎖長の長鎖および短鎖を完了したらように短いリストは、離れてリストの先頭から長から最初に来て、そのよう頭部同じスタートラインに相当し、行くために始める二人の友人
クラスソリューション(オブジェクト): DEF getIntersectionNode(セルフ、headA、headB): IF ない headA または 未headB: 返すなし pは、Q = headA、headB ながら、 P = Q :! #pは以下のQプログラムと等しくない場合に実行さ P = headBはIF pはありませんどれも他の p1.next #pが値を削除するには、何もないではない場合はNONE = headBは、p聞かせている Q = headA IF qはありませんどれも他の q.next #値を削除するには、qがNoneでない場合NONE = headAは、Q聞かせている リターンを P1の #のP、Q 1が交差する二つのケースがあり等しく、交点Aの出力ポイントがばらばら、出力NONEであります