美文网首页
【Leetcode/Python】002-Add Two Num

【Leetcode/Python】002-Add Two Num

作者: FLYNNNOTES | 来源:发表于2018-09-22 00:03 被阅读0次

题目

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。
你可以假设除了数字 0 之外,这两个数字都不会以零开头。

示例

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

感觉这题有点难,第一感觉是采取暴力相加的方式。

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

class Solution:
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        # 先把两个list取出来
        list1 = []
        list2 = []
        while l1:
            list1 .append(l1.val)
            l1 = l1.next
        # print(list1)
        while l2:
            list2.append(l2.val)
            l2 = l2.next
        # print(list2)

        #把取出来的list变成数字
        num1 = 0
        num2 = 0
        for i in range(len(list1)):
            num1 += list1[i] * (10**i)
        for j in range(len(list2)):
            num2 += list2[j] * (10**j)
        
        #把两个数字相加,倒序变成string格式,再存储成所需格式
        sum = str(num1 + num2)[::-1]
        result = head = ListNode(0)
        for i in range(0, len(sum)): 
            head.next = ListNode(sum[i])
            head = head.next
                    
        return result.next
···

相关文章

网友评论

      本文标题:【Leetcode/Python】002-Add Two Num

      本文链接:https://www.haomeiwen.com/subject/lfianftx.html