DEV Community

Cover image for Leetcode Add Two Numbers - Solution & Video Explaination
shubhsheth
shubhsheth

Posted on • Updated on

Leetcode Add Two Numbers - Solution & Video Explaination

Solution

ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
  ListNode* result = new ListNode();
  ListNode* resultPointer = result;
  int carry = 0;
  while (l1 || l2) {
    int sum = carry;
    if (l1) {
      sum += l1->val;
      l1 = l1->next;
    }
    if (l2) {
      sum += l2->val;
      l2 = l2->next;
    }            
    carry = sum / 10;

    resultPointer->next = new ListNode(sum % 10);
    resultPointer = resultPointer->next;
  }

  if (carry) {
    resultPointer->next = new ListNode(carry);
  }

  return result->next;
}
Enter fullscreen mode Exit fullscreen mode

Complexity

Runtime: O(n + m)
Space: O(1)

Oldest comments (0)