python code:
class Solution(object):
def addTwoNumbers(self, l1, l2):
len1=0
len2=0
p=l1
while p != None :
p=p.next
len1=len1+1
p=l2
while p != None :
p=p.next
len2=len2+1
if (len1>=len2):
p1=l1
p2=l2
else:
p1=l2
p2=l1
result= ListNode(None)
p=result
addone=0
while p2!=None:
p.next= ListNode((p1.val+p2.val+addone)%10)
addone=(p1.val+p2.val+addone)/10
p=p.next
p1=p1.next
p2=p2.next
while p1!=None:
p.next= ListNode((p1.val+addone)%10)
addone=(p1.val+addone)/10
p=p.next
p1=p1.next
if(addone>0):
p.next= ListNode(addone)
return result.next