leetcode

  leetcode

两数之和

涉及了链表的操作,其中链表有两个关键参数, self.val    self,next 一个表示当前位置的所对应值, 一个表示把指针切换到链表的下一个节点。

题目

 

以下是代码实现

class Solution:
    def addTwoNumbers(self, l1, l2):
        n1 = []
        n2 = []
        nl = []
        while l1.next and l2.next:
            n1.append(l1.val)
            n2.append(l2.val)
            l1 = l1.next
            l2 = l2.next
 
        while l1.next != None:
            n1.append(l1.val)
            l1 = l1.next
        while l2.next != None:
            n2.append(l2.val)
            l2 = l2.next
        else:
            n1.append(l1.val)
            n2.append(l2.val)
        res1 = 0
        res2 = 0
        number1 = len(n1)
        number2 = len(n2)

        for i in n1:

            if number1 >= 0:
                res1 += i * 10 ** (len(n1) - number1)
                number1 += -1
        for i in n2:
            if number2 >= 0:
                res2 += i * 10 ** (len(n2) - number2)
                number2 += -1


        res3 = list(str(res1 + res2))
        res3 = res3[::-1]
        for i in res3:
            nl.append(int(i))

        return nl

可优化部分 是对链表取值后 ,可以不通过列表遍历,方法还有待后续改进

posted @ 2019-07-04 19:03  熵殇  阅读(385)  评论(0编辑  收藏  举报