ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {
if(l1==NULL){
return l2;
}
if(l2==NULL){
return l1;
}
int m=0;
ListNode *l =new ListNode(0);
ListNode *l3=l;
while(l1!=NULL || l2!=NULL){
int value=0;
if(l1!=NULL){
value+=l1->val;
l1=l1->next;
}
if(l2!=NULL){
value+=l2->val;
l2=l2->next;
}
value+=m;
m=value/10;
l3->next=new ListNode(value%10);
l3=l3->next;
}
if(m==1){
l3->next= new ListNode(1);
}
return l->next;
}