二つのリンク-NOリストのleetcode-半ばリンクリスト-160交差点

逆リストと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であります

 

おすすめ

転載: www.cnblogs.com/rosyYY/p/10967372.html