#注意链表迭代和进位
# Definition for singly-linked 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
"""
#把链表值放进列表中。方便之后迭代
l1a = []
l2a = []
result = []
l1a.append(l1.val)
l2a.append(l2.val)
loop = ListNode(0)
loop1 = l1
loop2 = l2
if l1.next!= None:
while True:
loop1 = loop1.next
l1a.append(loop1.val)
print(l1a)
if loop1.next == None:
break
else:
pass
print(l1a)
if l2.next!= None:
while True:
loop2 = loop2.next
l2a.append(loop2.val)
print(l2a)
if loop2.next == None:
break
else:
pass
print(l2a)
#将两个链表的值加起来
if len(l1a) > len(l2a):
for i in range(0,len(l2a)):
result.append(l1a[i] + l2a[i])
for j in range(len(l2a),len(l1a)):
result.append(l1a[j])
if len(l1a) < len(l2a):
for i in range(0,len(l1a)):
result.append(l1a[i] + l2a[i])
for j in range(len(l1a),len(l2a)):
result.append(l2a[j])
if len(l1a) == len(l2a):
for i in range(0,len(l2a)):
result.append(l1a[i] + l2a[i])
print(result)
#判断进位
for i in range(0,len(result)):
if i < len(result)-1:
if result[i] >= 10:
result[i] = result[i]%10
result[i+1] +=1
if i == len(result)-1:
if result[i] >= 10:
result[i] = result[i]%10
result.append(1)
return result