class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* ptr1 = l1;
ListNode* ptr2 = l2;
ListNode* head = nullptr, *tail = nullptr;
int carry = 0;
while (ptr1 || ptr2) {
int num1 = ptr1 ? ptr1->val : 0;
int num2 = ptr2 ? ptr2->val : 0;
int sum = num1 + num2 + carry;
if (head == nullptr) {
tail = new ListNode(sum % 10);
head = tail;
}
else {
tail->next = new ListNode(sum % 10);
tail=tail->next;
}
carry = sum / 10;
if (ptr1) ptr1 = ptr1->next;
if (ptr2) ptr2 = ptr2 ->next;
}
if (carry) tail->next = new ListNode(carry);
return head;
}
};
Leetcode2.两数相加
最新推荐文章于 2024-09-10 22:16:49 发布