002 addTwoNumbers

题目描述

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。

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

示例:

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

代码

思路:将链表的data取出成一个列表,得到原始的两个数;两个相加,变成字符串,存成list;把list变成列表;

class Solution(object):
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        lst_l1 = []
        lst_l2 = []

        while l1 != None:
            lst_l1.append(l1.val)
            l1 = l1.next
        while l2 != None:
            lst_l2.append(l2.val)
            l2 = l2.next

        n1 = 0
        multi = 1
        for item in lst_l1:
            n1 = n1 + item * multi
            multi = multi * 10
        n2 = 0
        multi = 1
        for item in lst_l2:
            n2 = n2 + item * multi
            multi = multi * 10

        p = ListNode(None)
        p.next = None
        two_sum = str(n1 + n2)
        two_sum = list(two_sum)
        for item in two_sum:
            tmp = ListNode(int(item))
            tmp.next = p.next
            p.next = tmp
        l3 = p.next
        return l3

猜你喜欢

转载自blog.csdn.net/double___you/article/details/80299880
002