/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode cur=new ListNode(0);//该指针进行添加元素操作
ListNode pre=cur;//该指针用来返回结果
int carry=0;//存储10进1的那个值
while(l1!=null||l2!=null){//只要l1,l2中有一个不为空就可以继续下去
int a= l1==null ? 0:l1.val;//为空取0
int b= l2==null ? 0:l2.val;
int sum=a+b+carry;
carry=sum/10;
int t=sum%10;
cur.next=new ListNode(t);//cur下一个结点存值
cur=cur.next;//指向next
if(l1!=null)
l1=l1.next;
if(l2!=null)
l2=l2.next;
}
if(carry==1){
cur.next=new ListNode(carry);
}
return pre.next;//返回链表
}
}