zoukankan      html  css  js  c++  java
  • 两数相加

    # 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 
    #
    # 请你将两个数相加,并以相同形式返回一个表示和的链表。
    #
    # 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
    #
    #
    #
    # 示例 1:
    #
    #
    # 输入:l1 = [2,4,3], l2 = [5,6,4]
    # 输出:[7,0,8]
    # 解释:342 + 465 = 807.

    考察链表

    方法:

    class ListNode():
        def __init__(self, x):
            self.value = x
            self.next = None
    
    def createList(nums):
        # 创建链表
        last = None
        for i in reversed(nums):
            node = ListNode(i)
            node.next = last
            last = node
        return last
    
    def addTwoNumbers(l1, l2):
        # 建立头节点
        res = ListNode(0)
        # 临时节点
        r = res
        # 进位
        carry = 0
        # 只要有一个链表不为空,一直循环
        while l1 or l2:
            # 如果某一个节点当前值为空,则设定数字为0
            a = l1.value if l1 else 0
            b = l2.value if l2 else 0
            # 当前位相加,包括进位
            s = a + b + carry
            # 取整获取进位
            carry = s // 10
            # 取模获取余数
            s = s % 10
            # 临时结点指向当前节点
            r.next = ListNode(s)
            # 更新临时节点
            r = r.next
            # 链表是否为空
            if l1 is not None:
                l1 = l1.next
            if l2 is not None:
                l2 = l2.next
        # 最终判断进位,有,进位1
        if carry > 0:
            r.next = ListNode(1)
        return res.next
    时刻记着自己要成为什么样的人!
  • 相关阅读:
    Python中怎么使用(冒泡排序)?
    Python中怎么定义与调用(函数)
    简易购物商城(1.0)版本
    非空即真 和 切片 处理方式
    python模块-random
    内置函数
    多维数组
    函数扩展
    文件操作扩展2
    文件操作扩展
  • 原文地址:https://www.cnblogs.com/demo-deng/p/14921754.html
Copyright © 2011-2022 走看看