'''
You are given two non-empty linked lists representing two non-negative integers.
The digits are stored in reverse order and each of their nodes contain a single digit.
Add the two numbers and return it as a linked list.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
给出两个非空的链表用来表示两个非负的整数。
其中它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储一位数字。
如果我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
Example:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
'''
class Solution:
def addTwoNumbers(self
, l1
: ListNode
, l2
: ListNode
) -> ListNode
:
res
= ListNode
(0)
r
= res
carry
= 0
while l1
or l2
:
x
= l1
.val
if l1
else 0
y
= l2
.val
if l2
else 0
s
= carry
+ x
+ y
carry
= s
// 10
r
.next = ListNode
(s
% 10)
r
= r
.next
if l1
is not None:
l1
= l1
.next
if l2
is not None:
l2
= l2
.next
if carry
> 0:
r
.next = ListNode
(1)
return res
.next
转载请注明原文地址: https://mac.8miu.com/read-501349.html