一、C++
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *resList = new ListNode(-1);
resList->val = -1;
ListNode *nowNode = resList;
int carry = 0;
while (l1 != NULL) {
int num1 = l1->val;
int num2 = 0;
if (l2 != NULL) {
num2 = l2->val;
l2 = l2->next;
}
int num = num1 + num2 + carry;
if (resList->val == -1)
resList->val = num % 10;
else {
ListNode *node = new ListNode(num % 10);
nowNode->next = node;
nowNode = node;
}
l1 = l1->next;
carry = num / 10;
}
while (l2 != NULL) {
int num = carry + l2->val;
ListNode *node = new ListNode(num % 10);
nowNode->next = node;
nowNode = node;
l2 = l2->next;
carry = num / 10;
}
if (carry) {
ListNode *node = new ListNode(carry);
nowNode->next = node;
}
return resList;
}