python求两个链表组成的数字的和

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

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

代码实现:

 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

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

 

转载于:https://www.cnblogs.com/wgyang/p/10397954.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值