# Definition for singlylinked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
ret = ListNode(0)
cur = ret
add = 0
while l1 or l2 or add:
val = (l1.val if l1 else 0) + (l2.val if l2 else 0) + add
add = val / 10
cur.next = ListNode(val % 10)
cur = cur.next
l1 = l1.next if l1 else None
l2 = l2.next if l2 else None
return ret.next
Python solution, short and simple



@Mrsuyi I'm still a little confused on this. Could you explain it in a different manner ? Thanks