1 # Definition for singly-linked list.
 2 # class ListNode:
 3 #     def __init__(self, x):
 4 #         self.val = x
 5 #         self.next = None
 6 
 7 class Solution:
 8     def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
 9         """
10         type l1:ListNode
11         type l2:ListNode
12         rtype: ListNode
13         """
14         # 如果有一个链表为空,返回另外一个
15         if l1 is None:
16             return l2
17         if l2 is None:
18             return l1
19         # tmp是暂存(temporal)
20         tmp = ListNode(0) #引用ListNode类定义了一个链表节点并赋值给tmp
21         # res是重置(reset) 
22         res = tmp #赋值
23         # flag标识
24         flag = 0
25         while l1 or l2: #l1或l2不为0就继续执行
26             tmp_sum = 0  #链表节点值得和为0
27             if l1:  # 如果l1不为空,就把 l1 某个节点值的和赋给tmp_sum
28                 tmp_sum = l1.val
29                 l1 = l1.next
30             if l2:  # 如果l2不为空,把 l2中和 l1 相对应的节点值加到tmp_sum
31                 tmp_sum += l2.val
32                 l2 = l2.next    # 指向下一个节点,为下一次加和做准备
33             tmp_res = ((tmp_sum + flag)%10) #个位的数
34             flag = ((tmp_sum + flag)//10)   #进位的数
35             res.next = ListNode(tmp_res)    
36             res = res.next  # res 后移
37         if flag:    # 如果flag不为0,就是对应位置相加后有进位
38             res.next = ListNode(1)
39         res = tmp.next # 赋值
40         del tmp     #删除tmp变量
41         return res  #返回链表

参考博客地址 https://blog.csdn.net/zhangyu4863/article/details/80669819

鄙人心里有一些疑问,res.next = ListNode(tmp_res)啥意思 万望各路大神解答 我自己后续也会好好研究

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄