parameters: (self, l1, l2)
return_statement: return head
docstring: :type l1: ListNode
          :type l2: ListNode
          :rtype: ListNode
docstring_summary: :type l1: ListNode
          :type l2: ListNode
          :rtype: ListNode
docstring_tokens: : type l1 : ListNode : type l2 : ListNode : rtype : ListNode
function: def addTwoNumbers(self, l1, l2):
          """
          :type l1: ListNode
          :type l2: ListNode
          :rtype: ListNode
          """
          stk1, stk2 = [], []
          while l1:
              stk1.append(l1.val)
              l1 = l1.next
          while l2:
              stk2.append(l2.val)
              l2 = l2.next
  
          prev, head = None, None
          sum = 0
          while stk1 or stk2:
              sum /= 10
              if stk1:
                  sum += stk1.pop()
              if stk2:
                  sum += stk2.pop()
  
              head = ListNode(sum % 10)
              head.next = prev
              prev = head
  
          if sum >= 10:
              head = ListNode(sum / 10)
              head.next = prev
  
          return head
function_tokens: def addTwoNumbers ( self , l1 , l2 ) : stk1 , stk2 = [ ] , [ ] while l1 : stk1 . append ( l1 . val ) l1 = l1 . next while l2 : stk2 . append ( l2 . val ) l2 = l2 . next prev , head = None , None sum = 0 while stk1 or stk2 : sum /= 10 if stk1 : sum += stk1 . pop ( ) if stk2 : sum += stk2 . pop ( ) head = ListNode ( sum % 10 ) head . next = prev prev = head if sum >= 10 : head = ListNode ( sum / 10 ) head . next = prev return head