刚开始使用list,int,string等,做的不甚理想,然后参考了解题思路,使用链表,显然更快,也是更为正确的解题方式。
做完这题,需要好好复习一下自己的数据结构知识啦!
class Solution:
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
dummyHead = ListNode(0)
p=l1;q=l2;carry = 0;curr=dummyHead
while p!=None or q!= None:
if p!= None:
x = p.val
else:
x = 0
if q!=None:
y = q.val
else:
y = 0
sumRes = x+y+carry
carry = sumRes//10
curr.next = ListNode(sumRes%10)
curr = curr.next
if p!=None:
p = p.next
if q!=None:
q = q.next
if carry > 0:
curr.next = ListNode(carry)
return dummyHead.next
carry就是上一次两数相加的时候有没有进一位,进了就是1,没进就是0.