DEV Community ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป

DEV Community ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป is a community of 966,904 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Create account Log in
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)

Top comments (0)

๐ŸŒš Life is too short to browse without dark mode