1.两数相加
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-two-numbers 代码:LeetCode题解-老汤,里面的注释是我自己看视频写的
给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
dummy = ListNode(0)
curr = dummy
carry = 0
while l1 or l2:
x = l1.val if l1 else 0
y = l1.val if l2 else 0
total = x+y+carry
curr.next = ListNode(total % 10)
curr = curr.next
carry = total//10
if l1:
l1 = l1.next
if l2:
l2 = l2.next
if carry!=0:
curr.next = ListNode(carry)
return dummy.next
图片来源:LeetCode题解-老汤讲解中的视频截图,彩色文字是我的备注
|