LeetCode 2.(2つの数値)2つの数値を追加します。

トピックタグ:リンクリスト、数学

  トピックは、それぞれ番号が、逆の順序を表し、私たち2つのリンクリストを与えました。2つの数値を追加してみましょう。

  そして、一般的にはほぼ同じ追加しましたが、特にコードを見て、リンクされたリストになって、または使用する/して%。

 

Javaのソリューション:

ランタイム:2msの87%よりも速く 

メモリ使用量:44メガバイト、85%未満

完了日:2019年7月5日

キーポイント:使用/キャリー取得;%は残りを利用しました

/ ** 
 *単一リンクリストのための定義。
 *パブリッククラスListNode { 
 * int型のval; 
 * ListNode次。
 * ListNode(INT X){ヴァル= X。} 
 *} 
 * / 
クラスソリューション{
     パブリックListNodeのaddTwoNumbers(ListNode L1、L2 ListNode){ 
        
        ListNode dummyHead = 新しい ListNode(0 )。
        ListNode CURSOR1 = L1; 
        ListNode Cursor2の = L2; 
        ListNode cursor3 = dummyHead。
        
        int型のキャリー= 0 ; 
        
        しばらく(CURSOR1!= nullの || Cursor2の!=ヌル//は両方のリストを経る
        {
             // ノードが存在する場合は、値を取得し、elsewise、デフォルト0 
            int型 NUM1 = 0 ;
            int型からnum2 = 0 ; 
            
            もし(!CURSOR1 = ヌル
                NUM1 = cursor1.val。
            もし(!Cursor2の= ヌル
                からnum2 = cursor2.val。
            
            
            int型の合計= NUM1 + NUM2 + 運びます。
            
            // 更新キャリー及び和 
            キャリー=和/ 10 
            cursor3.next =新しい ListNode(合計10% )。
            cursor3 = cursor3.next。
            
            // 次のノードに、両方のリストを移動し
            た場合(!CURSOR1 = ヌル
                CURSOR1 = cursor1.next。
            もし(!Cursor2の= ヌル
                Cursor2の = cursor2.next。
        } 
        
        // 最後に、まだ最後の数字のために持ち歩くチェックする必要がある
        場合(キャリー== 1 
            cursor3.next = 新しい ListNode(1 ); 
        
        返すdummyHead.nextを。
    } 
}

参考文献:N / A

LeetCodeタイトルリスト-  LeetCode質問一覧

トピック出典ます。https://leetcode.com/

おすすめ

転載: www.cnblogs.com/jimmycheng/p/11144963.html