题目
代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* r = new ListNode(0);
ListNode* head = r;
int sum = 0, s = 0;
while(l1 != nullptr || l2!= nullptr || s!=0)
{
int x = l1!= nullptr ? l1->val : 0;
int y = l2!= nullptr ? l2->val : 0;
sum = x + y + s;
ListNode* n = new ListNode(sum%10);
s = sum/10;
r->next = n;
r = r->next;
if(l1!=nullptr)
l1 = l1->next;
if(l2!=nullptr)
l2 = l2->next;
}
return head->next;
}
};