struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){ struct ListNode *L3, *l3=(struct ListNode*)malloc(sizeof(struct ListNode)); L3=l3; int c=0; while(l1!=NULL || l2!=NULL){ int s=c; if(l1!=NULL){ s=s+l1->val; l1=l1->next; } if(l2!=NULL){ s= s + l2->val; l2=l2->next; } c=s/10; s=s%10; struct ListNode *n=(struct ListNode*)malloc(sizeof(struct ListNode)); n->val=s; n->next=NULL; L3->next=n; L3=L3->next; } if(c>0){ struct ListNode *n=(struct ListNode*)malloc(sizeof(struct ListNode)); n->val=c; n->next=NULL; L3->next=n; } return l3->next; }