LeetCode 第二天后续(两数相加 python3)
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实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
更多精彩