LeetCode-445、 两数相加 II-中等

LeetCode-445、 两数相加 II-中等

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。

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

进阶:

如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。

示例:

输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 8 -> 0 -> 7

代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        num1, num2 = 0, 0
        while l1 or l2:
            if l1:
                num1 = num1 * 10 + l1.val
                l1 = l1.next
            if l2:
                num2 = num2 * 10 + l2.val
                l2 = l2.next
        num = str(num1 + num2)
        head = ListNode(None)
        cur = head
        for s in num:
            cur.next = ListNode(int(s))
            cur = cur.next
        return head.next

发布了231 篇原创文章 · 获赞 54 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/clover_my/article/details/105523131