leetcode--2.两数相加

内容描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

 1 # Definition for singly-linked list.
 2 # class ListNode(object):
 3 #     def __init__(self, x):
 4 #         self.val = x
 5 #         self.next = None
 6 
 7 class Solution(object):
 8     def addTwoNumbers(self, l1, l2):
 9         """
10         :type l1: ListNode
11         :type l2: ListNode
12         :rtype: ListNode
13         """
14         #定义change递归函数,遍历链表,依次乘以10并且相加,重构成一个整数
15         def change(node):
16             return node.val + 10*change(node.next) if node else 0
17         
18         #把两个整数相加
19         num = change(l1) + change(l2)
20         
21         #将该整数转换成字符串
22         s = str(num)[::-1]
23         
24         #新建一个值为0的节点并指定索引
25         l4 = l3 = ListNode(0)
26         
27         #遍历转换后的字符串形式的和将其值依次赋予链表
28         for i in s:
29             l3.next = ListNode(i)
30             l3 = l3.next
31         return l4.next
32         

 

posted @ 2019-02-23 16:08  夜雨声入眠  阅读(112)  评论(0编辑  收藏  举报