力扣-2.两数相加

本文最后更新于:2022年10月4日 下午

题目描述

第一张图

实现

什么额外要求都没有,也没让你把数字正序输出拼起来,那就直接简单遍历喽

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution:
def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:
head: ListNode = ListNode()
scout: ListNode = head
c_flag: int = 0
while l1 is not None or l2 is not None: # 遍历l1和l2
tmp: ListNode = ListNode()
num1 = l1.val if l1 is not None else 0
num2 = l2.val if l2 is not None else 0
if num1 + num2 + c_flag >= 10: # 产生进位,要把进位标志设置成1
tmp.val = num1 + num2 + c_flag - 10
c_flag = 1
else: # 没有进位,把进位标志设置成0
tmp.val = num1 + num2 + c_flag
c_flag = 0
scout.next = tmp
scout = tmp
l1 = None if l1 is None else l1.next # l1和l2若是还有后续,那就取后续,如果没有就要设置成None
l2 = None if l2 is None else l2.next
if c_flag == 1: # 不要忘了遍历结束后,进位标志如果是1的话,还要加个最高位
scout.next = ListNode(1, None)

return head.next

千万别忘记遍历结束还要检查进位标志啊家人们,第一次交我直接漏了一个1没输出,执行示例那里看错了把预期结果看成我的输出我还以为没错TvT

执行用时:56 ms, 在所有 Python3 提交中击败了87.89%的用户
内存消耗:15.1 MB, 在所有 Python3 提交中击败了26.41%的用户
打不过,告辞.jpg


这里有一只爱丽丝

希望本文章能够帮到您~


力扣-2.两数相加
https://map1e-g.github.io/2022/10/04/leetcode-2/
作者
MaP1e-G
发布于
2022年10月4日
许可协议