美文网首页
002-Add Two Numbers

002-Add Two Numbers

作者: 篮子always | 来源:发表于2017-12-27 12:50 被阅读16次

语言:python3


v1:以为是数组,没看清是ListNode,开始的想法是list转成int,再加,结果转字符串,再转为list,事实证明想法很天真。

class Solution:
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        
        l1 = l1[::-1]
        l2 = l2[::-1]
        num1 = list()
        num2 = list()
        for i in l1:
            num1.append(str(i))
        for j in l2:
            num2.append(str(j))
        num1 = int(''.join(num1))
        num2 = int(''.join(num2))
        output = num1 + num2
        output = str(output)
        sum1 = list()
        for i in range(len(output)):
            sum1.append(int(output(i)))
        return sum1[::-1]

v2:看了其他人的解题思路

class Solution:
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        
        if l1 is None:
            return l2
        elif l2 is None:
            return l1
        else:          
            carry = 0
            ret =ListNode(0)
            ret_Last = ret
            
            while(l1 or l2):
                sum = 0
                if(l1):
                    sum = l1.val
                    l1 = l1.next
                if(l2):
                    sum += l2.val
                    l2 = l2.next
                sum += carry
                ret_Last.next = ListNode(sum%10)
                ret_Last = ret_Last.next
                carry = (sum >= 10)
            if(carry):
                ret_Last.next =ListNode(1)
            ret_Last = ret.next
            del ret
            return ret_Last

ListNode(n)就是为后续节点添加值n, ListNode.next指向后一个节点

相关文章

网友评论

      本文标题:002-Add Two Numbers

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