编程笔记(7)
两数之和(LeetCode 2)
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
python3 代码:
class Solution:
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
p = l1
q = l2
count1 = 0
count2 = 0
sum_p = 0
sum_q = 0
while(p!=None):
x = p.val if p else 0
sum_p += x*pow(10,count1)
if p!=None : p = p.next
count1 += 1
while(q!=None):
y = q.val if q else 0
sum_q += y*pow(10,count2)
if q!=None : q = q.next
count2 += 1
sum_a = sum_p + sum_q
sum_str = str(sum_a)[::-1]
count = len(sum_str)
re = ListNode(sum_str[0:1])
r = re
for i in range(1,count):
r.next = ListNode(sum_str[i:i+1])
r = r.next
return re