注意最后一个进位如果不为0,则需要增加一个节点。
class Solution {
public:
ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {
ListNode dummy(-1);
ListNode *cur = &dummy;
int carry = 0;
while(l1 || l2 || carry)
{
auto a = l1? l1->val:0;
auto b = l2? l2->val:0;
int c = (a+b+carry)%10;
carry = (a+b+carry)/10;
ListNode *newnode = new ListNode(c);
cur->next = newnode;
cur = cur->next;
l1 = l1? l1->next: NULL;
l2 = l2? l2->next: NULL;
}
return dummy.next;
}
};