zoukankan      html  css  js  c++  java
  • add 2 nums

    问题描述:

    给定两个链表,计算出链表对应位置相加的和,如果和大于10要往后进位。用链表返回结果。其实上是一种大数加法。可以把一个大数倒着写存入链表,然后两个链表相加就是所需要的大数相加的和

    输入

    2 -> 3 -> 5

    3-> 4 -> 6

    输出

    5->7->1->1

    Python实现的代码

    Class addtwonums(object):

      Def teonum(self, l1,l2):

        Root=n = ListNode(0)

        Carrey = 0

        While l1 or l2 or carrey:

          If l1:
            num1 = l1.val

            L1 =l1.next

          If l2:

            Num2 = l2.val

            L2 =l2.next

          Carrey, val = divmod(num1+num2+carrey, 10)

          N.next = ListNode(val)

          N = n.next

        Return root.next

    思考与总结

    1.Python中的divmod(a, b)函数,它会返回两个值,第一个值是a//b的值,第二个值是a%b的值,也就是说前者是a除以b的整数部分,后者是a除以b的余数部分

    2.python中构建链表的方法:python中没有想c中直接的链表,你需要多大的空间,不需要自己预先设定,只要在定义好的链表后面加上你想要的ListNode(val)就行

    比如:

    a = b = ListNode(0) #表示a, b 指向一个值为0的链表节点

    B.next = ListNode(5) #表示b的下一个节点指向值为5的链表节点

    B = b.next

    return a

    此时会返回 0 -> 5

  • 相关阅读:
    C#中自动增量字段值的获取方法
    Mio改造第一步
    酒后
    阳朔自驾行-行程篇
    如何在C#中获取新插入的identity列值
    格格生了
    扯皮
    nPdl的翻译
    asp.net和asp的互相调用
    NetBPM前进了一步,解决了上一个问题
  • 原文地址:https://www.cnblogs.com/xzm123/p/8987303.html
Copyright © 2011-2022 走看看