https://leetcode.com/problems/add-two-numbers/
c++
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* header1 = l1;
ListNode* header2 = l2;
ListNode* ret = NULL;
ListNode* temp = NULL;
ret = new ListNode(header1->val + header2->val);
temp = ret;
int up = 0;
if(ret->val >= 10)
{
up = 1;
ret->val -= 10;
}
header1 = header1->next;
header2 = header2->next;
int sum = 0;
while(1)
{
if(!header1 && !header2 && !up)
break;
sum = up;
if(header1)
sum += header1->val;
if(header2)
sum += header2->val;
temp->next = new ListNode(sum);
temp = temp->next;
if(sum >= 10)
{
up = 1;
temp->val -= 10;
}
else
up = 0;
if(header1)
header1 = header1->next;
if(header2)
header2 = header2->next;
}
return ret;
}
};