https://leetcode-cn.com/problems/add-two-numbers/
/**
* 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* dummy_head = new ListNode();
ListNode* head = dummy_head;
int acc = 0;
while (l1 != nullptr || l2 != nullptr) {
int val1(0), val2(0);
if (l1 != nullptr) {
val1 = l1->val;
l1 = l1->next;
}
if (l2 != nullptr) {
val2 = l2->val;
l2 = l2->next;
}
int val = acc + val1 + val2;
acc = val >= 10;
head->next = new ListNode(val % 10);
head = head->next;
}
if (acc) {
head->next = new ListNode(1);
}
return dummy_head->next;
}
};
网友评论