445. Add Two Numbers II

Medium


You are given two non-empty linked lists representing two non-negative integers. The most significant digit comes first 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 = [7,2,4,3], l2 = [5,6,4]
Output: [7,8,0,7]

Example 2:

Input: l1 = [2,4,3], l2 = [5,6,4]
Output: [8,0,7]

Example 3:

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

 

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.

 

Follow up: Could you solve it without reversing the input lists?





 # Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:
        num1 = self.nodeToNumber(l1)
        num2 = self.nodeToNumber(l2)

        answer =  num1+num2 
        return self.reverseLL(self.numberToNode(num1 + num2))



    def reverseLL(self, head):
        prev = None
        node = head
        while node:
            temp = node.next 
            node.next = prev
            prev = node
            node = temp
        return prev        


    def nodeToNumber(self, head):
        number = 0
        node = head
        while node:
            number = number*10 + node.val
            node = node.next 

        return number

    def numberToNode(self, number):

        head = ListNode(0)
        node = head
        if number == 0:
            return head

        while number!=0:
            digit = number%10
            new_node = ListNode(digit)
            node.next = new_node
            node = new_node
            number = number// 10

        return head.next


Random Note


  1. Effectively Using Django REST Framework Serializers
  2. How To Use DRF Serializers Effectively in Django
  3. My personal django rest framework serializer notes
  4. How to use DRF serializers effectively during write operations