美文网首页
【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