':type l1: ListNode
:type l2: ListNode
:rtype: ListNode'

def addTwoNumbers(self, l1, l2):

    dummy = ListNode(0)
    (current, carry) = (dummy, 0)
    while (l1 or l2):
        val = carry
        if l1:
            val += l1.val
            l1 = l1.next
        if l2:
            val += l2.val
            l2 = l2.next
        (carry, val) = ((val / 10), (val % 10))
        current.next = ListNode(val)
        current = current.next
    if (carry == 1):
        current.next = ListNode(1)
    return dummy.next
