zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    pinus学习(3)
    pinus学习(2)
    HBASE架构解析(二)
    排序算法
    泛型原理
    《JAVA NIO》第二章缓冲区
    @SuppressWarnings
    网络编程
    synchronized原理
    第十六节:pandas之日期时间
  • 原文地址:https://www.cnblogs.com/Sunbreaker/p/11134346.html
Copyright © 2011-2022 走看看