题目:输入两个链表,形如1->2->3,9->2 输出0->5->3,其中输入不会以开始
思路:每位相加,有进位,累加到下一位
class Node:#链表节点
def __init__(self,x):
self.val=x
self.next=None
def addTwoList(l1,l2):
sum=0#累加和
temp=0#进位
h=p=Node(0)#头节点
while l1 or l2:
if l1:#累加第一个链表
sum+=l1.val
l1=l1.next
if l2:
sum+=l2.val
l2=l2.next
if sum>=10:#进位
temp=sum/10
sum=sum%10+int(temp)
else:
temp=0
p.next=Node(sum)#创建新节点,插入新链表
p=p.next
if temp>0:#最后有进位,创建节点并插入
p.next=Node(temp)
return h.next
l1=Node(1)
l1.next=Node(2)
l2=Node(9)
print(addTwoList(l1, l2).next.val)
另外,可以逆转链表,把链表转成字符串,再转成int相加,这种如果链表太长可能会溢出