- C++
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* ptr = new ListNode(0);
ListNode* r = ptr;
int temp = 0;
while(!(l1==NULL&&l2==NULL)){
if(l1!=NULL&&l2!=NULL){
if(temp>=10){
temp = l1->val + l2->val + 1;
}else{
temp = l1->val + l2->val;
}
}else if(l1!=NULL){
if(temp>=10){
temp = l1->val + 1;
}else{
temp = l1->val;
}
}else{
if(temp>=10){
temp = l2->val + 1;
}else{
temp = l2->val;
}
}
ptr->next = new ListNode(temp % 10);
ptr = ptr->next;
if(l1!=NULL){
l1 = l1->next;
}
if(l2!=NULL){
l2 = l2->next;
}
}
if(temp>=10){
ptr->next = new ListNode(1);
}
ptr = r;
r = r->next;
delete ptr;
return r;
}
};