leetCode2
【两数相加】
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
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 }