Add Two Numbers II

class Solution:
    def addTwoNumbers(self, l1, l2):
        
        def reverse_list(head):
            prev = None
            curr = head
            while curr:
                temp = curr.next
                curr.next = prev
                prev = curr
                curr = temp
            return prev
        
        l1 = reverse_list(l1)
        l2 = reverse_list(l2)

        result = temp = ListNode(-1, None)

        carry = 0
        while l1 or l2:
            n1 = 0 if not l1 else l1.val
            n2 = 0 if not l2 else l2.val

            total = n1 + n2 + carry
            carry = total // 10
            total = total % 10

            temp.next = ListNode(total, temp.next)

            l1 = None if not l1 else l1.next
            l2 = None if not l2 else l2.next

        if carry:
            temp.next = ListNode(carry, temp.next)
        
        return result.next