【两数相加】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 }