思路:
新建一个链表, 遍历两个链表, 注意如果和大于10要进位到后面节点, 最后如果还有进位则在最后一个节点后新建一个1节点
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* tail = new ListNode(0);
ListNode* temp = tail;
int carry = 0;
while (l1 || l2) {
int val1 = 0;
if (l1) {
val1 = l1->val;
l1 = l1->next;
}
int val2 = 0;
if (l2) {
val2 = l2->val;
l2 = l2->next;
}
int value = val1 + val2 + carry;
carry = value / 10;
temp->next = new ListNode(value % 10);
temp = temp->next;
}
if (carry) temp->next = new ListNode(1);
return tail->next;
}