python3两数相加的实现示例

 更新时间:2021年04月01日 08:43:18   作者:南岸青栀*  
这篇文章主要介绍了python3两数相加的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

在这里插入图片描述

示例 1:

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.

示例 2:

输入:l1 = [0], l2 = [0]
输出:[0]

示例 3:

输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]

思路:

1.创建一个新链表,新链表的头部先设置为l1头部和l2头部之和。
2.遍历两个链表,只要有一个还没有遍历完就继续遍历
3.每次遍历生成一个当前节点cur的下一个节点,其值为两链表对应节点的和再加上当前节点cur产生的进位
4.更新进位后的当前节点cur的值
5.循环结束后,因为首位可能产生进位,因此如果cur.val是两位数的话,新增一个节点
6.返回头节点

由题目注释可以看出listNode这个类是用来创建链表的,默认next=None,val=0.
Definition for singly-linked list.
class ListNode:
def init(self, val=0, next=None):
self.val = val
self.next = next

# Definition for singly-linked list.
# class ListNode:
#  def __init__(self, val=0, next=None):
#   self.val = val
#   self.next = next
class Solution:
 def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
  head = ListNode(l1.val+l2.val)
  current = head
  while l1.next or l2.next:
   l1 = l1.next if l1.next else ListNode()
   l2 = l2.next if l2.next!=None else ListNode()
   current.next = ListNode(l1.val+l2.val+current.val//10)
   current.val = current.val%10
   current = current.next
  if current.val >= 10:
   current.next = ListNode(current.val//10)
   current.val = current.val%10
  return head

改进改进:增加了空间复杂度。本以为一方为None后直接把另一个链表连上就ok了。然后,就打脸了。

在这里插入图片描述

然后又加了while

> [9999]

# Definition for singly-linked list.
# class ListNode:
#  def __init__(self, val=0, next=None):
#   self.val = val
#   self.next = next
class Solution:
 def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
  head = ListNode(l1.val+l2.val)
  current = head
  while l1.next and l2.next:
   l1 = l1.next 
   l2 = l2.next 
   current.next = ListNode(l1.val+l2.val+current.val//10)
   current.val = current.val%10
   current = current.next
  if l1.next == None and l2.next :
   while l2.next:
    l2 = l2.next
    current.next= ListNode(l2.val+current.val//10)
    current.val = current.val%10
    current = current.next
    current.next = l2.next
  elif l2.next == None and l1.next:
   while l1.next:
    l1 = l1.next
    current.next= ListNode(l1.val+current.val//10)
    current.val = current.val%10
    current = current.next
    current.next = l2.next
  if current.val >= 10:
   current.next = ListNode(current.val//10)
   current.val = current.val%10
  return head

在这里插入图片描述

到此这篇关于python3两数相加的实现示例的文章就介绍到这了,更多相关python3两数相加内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django contenttypes 框架详解(小结)

    Django contenttypes 框架详解(小结)

    这篇文章主要介绍了Django contenttypes 框架详解(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • python引入其他文件夹下的py文件具体方法

    python引入其他文件夹下的py文件具体方法

    在本篇文章里小编给大家整理的是一篇关于python引入其他文件夹下的py文件具体方法,有兴趣朋友们可以跟着学习参考下。
    2021-05-05
  • python将文本中的空格替换为换行的方法

    python将文本中的空格替换为换行的方法

    这篇文章主要介绍了python将文本中的空格替换为换行的方法,需要的朋友可以参考下
    2018-03-03
  • 利用Python判断文件的几种方法及其优劣对比

    利用Python判断文件的几种方法及其优劣对比

    任何的编程语言都离不开文件操作,文件操作主要是帮助我们更好的创建打开文件,读取文件中的内容、或是把我们想要保存的内容写入文件中、或是管理文件目录等等,下面这篇文章主要给大家介绍了关于利用Python判断文件的几种方法及其优劣对比的相关资料,需要的朋友可以参考下
    2022-06-06
  • 探索Python内置数据类型的精髓与应用

    探索Python内置数据类型的精髓与应用

    本文探索Python内置数据类型的精髓与应用,包括字符串、列表、元组、字典和集合。通过深入了解它们的特性、操作和常见用法,读者将能够更好地利用这些数据类型解决实际问题。
    2023-09-09
  • 使用Python的matplotlib库绘制柱状图

    使用Python的matplotlib库绘制柱状图

    这篇文章主要介绍了使用Python的matplotlib库绘制柱状图,Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型地2D图表和一些基本的3D图表,可根据数据集自行定义x,y轴,绘制图形,需要的朋友可以参考下
    2023-07-07
  • 总结python多进程multiprocessing的相关知识

    总结python多进程multiprocessing的相关知识

    今天给大家带来的是关于Python的相关知识,文章围绕着python multiprocessing多进程的相关知识展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Pandas通过index选择并获取行和列

    Pandas通过index选择并获取行和列

    本文主要介绍了Pandas通过index选择并获取行和列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python编程密码学文件加密与解密代码解析

    Python编程密码学文件加密与解密代码解析

    这篇文章主要为大家介绍了Python编程密码学文件加密与解密,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python多进程使用及进程池详解

    Python多进程使用及进程池详解

    这篇文章主要为大家介绍了Python多进程使用及进程池详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论