给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。

示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

代码实现:

 1 class ListNode:
 2     def __init__(self, x):
 3         self.val = x
 4         self.next = None
 5 
 6     def addTwoNumbers(self, l1, l2):
 7         """
 8         :type l1: ListNode
 9         :type l2: ListNode
10         :rtype: ListNode
11         """
12         val_sum = l1.val + l2.val
13         list_node = ListNode(val_sum % 10)
14         a = val_sum // 10
15         node = list_node
16         while True:
17             try:
18                 l1 = l1.next
19             except:
20                 pass
21             try:
22                 l2 = l2.next
23             except:
24                 pass
25             if not l1 and not l2:
26                 break
27             elif not l1:
28                 l1_val = 0
29                 l2_val = l2.val
30             elif not l2:
31                 l2_val = 0
32                 l1_val = l1.val
33             else:
34                 l1_val = l1.val
35                 l2_val = l2.val
36             val_sum = l1_val + l2_val + a
37             temp_node = ListNode(val_sum % 10)
38             node.next = temp_node
39             node = temp_node
40             a = val_sum // 10
41         if a != 0:
42             node.next = ListNode(a)
43         return list_node

注:这是在网上做的练习题,记录一下,有需要的时候方便自己查看。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄