【兩數相加】spa
給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,而且它們的每一個節點只能存儲 一位 數字。
若是,咱們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。您能夠假設除了數字 0 以外,這兩個數都不會以 0 開頭。code
1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int x) { val = x; } 7 * } 8 */ 9 class Solution { 10 public ListNode addTwoNumbers(ListNode l1, ListNode l2) { 11 ListNode p1 = l1,p2=l2; 12 ListNode dummy = new ListNode(0); 13 ListNode cur = dummy; 14 int sum = 0 ; 15 while (p1!=null||p2!=null){ 16 if(p1!=null){ 17 sum+=p1.val; 18 p1=p1.next; 19 } 20 if(p2!=null){ 21 sum+=p2.val; 22 p2=p2.next; 23 } 24 cur.next = new ListNode(sum%10); 25 sum/=10; 26 cur=cur.next; 27 } 28 if(sum==1){ 29 cur.next=new ListNode(1); 30 } 31 32 return dummy.next; 33 } 34 }