链接:2. 两数相加 - 力扣(LeetCode)

直接写

 1 # Definition for singly-linked list.
 2 # class ListNode(object):
 3 #     def __init__(self, val=0, next=None):
 4 #         self.val = val
 5 #         self.next = next
 6 def addNum(l):
 7         num = 0
 8         res = 0
 9         while l:
10             res += (10 ** num) * l.val
11             num += 1
12             l = l.next
13         return res
14 
15 class Solution(object):
16     def addTwoNumbers(self, l1, l2):
17         """
18         :type l1: Optional[ListNode]
19         :type l2: Optional[ListNode]
20         :rtype: Optional[ListNode]
21         """
22         num1 = addNum(l1)
23         num2 = addNum(l2)
24         resNum = num1+num2
25         resNode = ListNode()
26         if resNum < 10:
27             resNode.val = resNum
28             return resNode
29         currNode = resNode
30         currNode.val = resNum % 10
31         resNum /= 10
32         while resNum >= 10:
33             currNode.next = ListNode()
34             currNode.next.val = resNum % 10
35             resNum /= 10
36             currNode = currNode.next
37         currNode.next = ListNode()
38         currNode.next.val = resNum
39         return resNode
40 
41 
42 
43