Leetcode | Add Two Numbers | Python

Leetcode | Add Two Numbers | Python

Join me as I conquer this challenge

Welcome! Continuing off with solving more Leetcode problems. Today I will be walking your through on how to solve Leetcode #2 Add Two Numbers problem in Python3.

Problem Description

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

Example 1:

Input: l1 = [2,4,3], l2 = [5,6,4]
Output: [7,0,8]
Explanation: 342 + 465 = 807.

Example 2:

Input: l1 = [0], l2 = [0]
Output: [0]

Example 3:

Input: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
Output: [8,9,9,9,0,0,0,1]

Constraints:

  • The number of nodes in each linked list is in the range [1, 100].

  • 0 <= Node.val <= 9

  • It is guaranteed that the list represents a number that does not have leading zeros.

Solution Walk-Through

With this problem we will be adding two digits of two linked lists and returning their sum. We also need to keep in mind of the carry value for each sum calculated.

First we will need to set the carry value to 0.

       carry = 0

       root = n = ListNode(0)

Then will need to do a while loop which will iterate through each node. While each value has a digit or carry value it will update the list.

while l1 or l2 or carry:
            v1 = v2 = 0
            if l1:
                v1 = l1.val
                l1 = l1.next
            if l2:
                v2 = l2.val
                l2 = l2.next

Using the divmod() method it takes two numbers as arguments and returns their quotient/ remainder in a tuple.

carry, val = divmod(v1+v2+carry, 10)

Lastly, we update each node in the list and return.

n.next = ListNode(val)
            n = n.next
        return root.next

Select run to view test case results.

That is all! Thanks for reading and following along. If you like this article please consider following me for more.