LeetCode-2-两数相加

    科技2022-07-20  120

    2. 两数相加

    说明

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

    您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    示例

    输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807

    题解思路

    模拟相加

    代码实现

    # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: ans = ListNode(None) node = ans s = 0 while l1 or l2: """如果不存在,用0补充""" n1 = l1.val if l1 else 0 n2 = l2.val if l2 else 0 total = n1 + n2 + s num = total//10 if num > 0: tmp = ListNode(total) node.next = tmp node = tmp s = 1 else: s = 0 tmp = ListNode(total) node.next = tmp node = tmp if l1:l1 = l1.next if l2:l2 = l2.next if num > 0 and not l1 and not l2: node.next = ListNode(1) return ans.next
    Processed: 0.011, SQL: 8