You have two numbers represented by a linked list, where each node contains a single digit. The digits are stored in reverse order, such that the 1’s digit is at the head of the list. Write a function that adds the two numbers and returns the sum as a linked list.
EXAMPLE
Input: (3 -> 1 -> 5), (5 -> 9 -> 2)
Output: 8 -> 0 -> 8
leetcode:Add Two Numbers
http://blog.csdn.net/todorovchen/article/details/24846833
ListNode *addTwoNumbers(ListNode *l1, ListNode *l2)
{
ListNode *new_head = new ListNode(0);
ListNode *cur = new_head;
int carry = 0;
while(l1 || l2 || carry!=0)
{
int val1=0, val2=0;
if(l1)
{
val1=l1->val;
l1=l1->next;
}
if(l2)
{
val2=l2->val;
l2=l2->next;
}
int sum = val1 + val2 + carry;
carry = sum/10;
cur->next = new ListNode(sum%10);
cur = cur->next;
}
return new_head->next;
}