题2、2つの数値を追加

题2、2つの数値を追加

タイトル

次の2つの非負の整数を表す2つの非空のリンクリストを与えています。数字は逆の順序で保存され、それらのノードの各々は、単一の数字を含みます。2つの数値を追加し、リンクリストとしてそれを返します。

次の2つの数字が数0自体を除き、任意の先行ゼロを含まない仮定することができます。

例:

入力:(2 - > 4 - > 3)+(5 - > 6 - > 4)
出力:7 - > 0 - > 8
説明:342 + 465 = 807。

思考

この質問は、私が反応するのに長い時間が無知だった、混乱がライン上の関係を把握するために何を、テストリストです。
また、ことに注意してくださいキャリー迷子に運ばないでください。
忘れないであり、与えられた二つの数は、必ずしも、特別な場合に対処するために注意を払うと等しくないが、パニックにならないことがあり、覚えておくために多くのピットを辞任しました。

コード

私は、私のようにそれを見たくない、大物が見たいと思って、鶏肉料理をしています

public class Add_Two_Numbers {

	public static void main(String[] args) {
		
		ListNode a = new ListNode( 2 );
		ListNode b = new ListNode( 4 );
		ListNode c = new ListNode( 3 );
		
		ListNode d = new ListNode( 5 );
		ListNode e = new ListNode( 6 );
		ListNode f = new ListNode( 7 );
		
		a.next = b;
		b.next = c;
		
		d.next = e;
		e.next = f;
		
		ListNode o = addTwoNumbers( a, d );

		while( o != null ) {
			System.out.print( o.val );
			o = o.next;
		}
			
	}
	
	 public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
	        ListNode first = new ListNode(0);
	    	ListNode before = first;
	    	
	    	int up = 0;
	    	
	    	while( l1!=null || l2!=null || up!=0) {
	    		if( l1!=null && l2!=null ) {
	    		    before.next = new ListNode( (l1.val + l2.val + up)%10 );
	    		    up = (l1.val + l2.val + up)/10;
	    		    l1 = l1.next;
	    		    l2 = l2.next;
	    		}else if( l1==null && l2!=null ) {
	    			before.next = new ListNode( (l2.val + up)%10 );
	    		    up = (l2.val + up)/10;
	    		    l2 = l2.next;
	    		}else if( l1!=null && l2==null ) {
	    			before.next = new ListNode( (l1.val + up)%10 );
	    		    up = (l1.val + up)/10;
	    		    l1 = l1.next;
	    		}else if( l1==null && l2==null && up != 0 ) {
	    			before.next = new ListNode( up );
	    			up = 0;
	    		}
	    		
	    		before = before.next;
	    		
	    	}
	    	
			return first.next;
	        
	    }
}
//节点
class ListNode {
	int val;
	ListNode next;
	ListNode(int x) { val = x; }
  }

公開された25元の記事 ウォンの賞賛0 ビュー132

おすすめ

転載: blog.csdn.net/weixin_45980031/article/details/103465880