2. Add Two Numbers - cocoder39/coco39_LC GitHub Wiki
dummy head + two pointers
do not hesitate to allocate new memory for the result linkedlist
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode dummy(0);
ListNode* p = &dummy;
int carry = 0;
while (l1 || l2 || carry) {
int sum = (l1 ? l1->val : 0) + (l2 ? l2->val : 0) + carry;
p->next = new ListNode(sum % 10);
carry = sum / 10;
p = p->next;
l1 ? l1 = l1->next : l1 = nullptr;
l2 ? l2 = l2->next : l2 = nullptr;
}
return dummy.next;
}