A Leetcode problem about Linked List
Problem
https://leetcode.com/problems/add-two-numbers/
Soln
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
struct ListNode* root = new ListNode();
struct ListNode* curr = nullptr;
int carry = 0;
while (l1 != nullptr | l2 != nullptr | carry != 0){
int left = 0;
int right = 0;
if (l1 != nullptr){
left = l1->val;
l1 = l1->next;
}
if (l2 != nullptr){
right = l2->val;
l2 = l2->next;
}
int newcarry = (left+right+carry) / 10;
int res = (left+right+carry) % 10;
carry = newcarry;
if (curr == nullptr){
root->val = res;
root->next = nullptr;
curr = root;
}
else {
struct ListNode* next = new ListNode(res);
curr->next = next;
curr = curr->next;
}
}
return root;
}