上一篇:LeetCode两数之和-Python<一>

题目:https://leetcode-cn.com/problems/add-two-numbers/description/

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

关键点:进位(这里满十加一)、指针移动(这里移向下一个节点)

class Solution:
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
""" ans = ListNode(0) #新建一个节点,初始值为0
temp = ans
tempsum = 0 while True:
if (l1 != None):
tempsum = l1.val + tempsum #l1链表节点值添加到总和里
l1 = l1.next #指针指向下一个节点
if (l2 != None):
tempsum = tempsum + l2.val #l2链表节点值添加到总和里
l2 = l2.next #指针指向下一个节点 temp.val = tempsum % 10 #取余数(满十进位),赋值当前节点值
print(tempsum)
tempsum = int(tempsum / 10) #获取进位数赋值给总和(比如tempsum为10则进1位,否则进位为0),下一次节点相加,从新的总和开始。
if l1 == None and l2 == None and tempsum == 0: #直到没有进位了,同时节点位空了,跳出循环。(这里加上tempsum==0条件是因为,最后两个节
break #点和值可能大于10) temp.next = ListNode(0) #新建下一个节点,存放和
temp = temp.next #指针指向下一个节点 return ans

时间复杂度:O(max(l1长度,l2长度)) ,空间复杂度:O(max(l1长度,l2长度))

LeetCode链表相加-Python<二>的更多相关文章

  1. 【python】Leetcode每日一题-二叉搜索树节点最小距离

    [python]Leetcode每日一题-二叉搜索树节点最小距离 [题目描述] 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 . 示例1: 输入:root = [4 ...

  2. 【python】Leetcode每日一题-二叉搜索迭代器

    [python]Leetcode每日一题-二叉搜索迭代器 [题目描述] 实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(T ...

  3. 【LeetCode每天一题】Add Two Numbers(两链表相加)

    You are given two non-empty linked lists representing two non-negative integers. The digits are stor ...

  4. Leetcode 063 不同路径二

    一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为" ...

  5. Leetcode链表

    Leetcode链表 一.闲聊 边学边刷的--慢慢写慢慢更 二.题目 1.移除链表元素 题干: 思路: 删除链表节点,就多了一个判断等值. 由于是单向链表,所以要删除节点时要找到目标节点的上一个节点, ...

  6. python 二维数组读入

    study from : https://www.cnblogs.com/reaptomorrow-flydream/p/9613847.html python 二维数组键盘输入 1 m = int( ...

  7. Python 二维码制作

    Python 二维码制作 先介绍python 二维码制作的第三方库 QRCode .MyQR QRCode    生成这个二维码只用三行 import qrcode img = qrcode.make ...

  8. [LeetCode] [链表] 相关题目总结

    刷完了LeetCode链表相关的经典题目,总结一下用到的技巧: 技巧 哑节点--哑节点可以将很多特殊case(比如:NULL或者单节点问题)转化为一般case进行统一处理,这样代码实现更加简洁,优雅 ...

  9. 【JavaScript】Leetcode每日一题-二叉搜索树的范围和

    [JavaScript]Leetcode每日一题-二叉搜索树的范围和 [题目描述] 给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和. 示例1: 输入: ...

随机推荐

  1. Hadoop和一般数据库的区别?

    难道一般的数据库比如PostgreSQL就不可以做集群吗?像Oracle.SQL Sever它们就没有发明这一功能吗? https://www.jianshu.com/p/525cfe07badc H ...

  2. 国网电表dlt645-2007抄表软件

    这个支持公网抄表 在以前局域网的基础上做了修正 使用起来更加便利了

  3. Python-字典(dict)

    字典是一种key-value的数据类型,字典里必须写Key和value: 字典的优点是取数方便和速度快. 字典的定义使用大括号{ },每个值用“,”隔开,key和value使用“:”分隔. value ...

  4. Eclipse中一些真正常用的快捷键

    F2 文件重命名(要使用某个过长的文件名或者不好打的文件名时,直接F2再Ctrl+C非常好用,比如:Validform_v5.3.2_min.js) Ctrl+S 保存当前文件 Ctrl+Shift+ ...

  5. 《pyhton语言程序设计》_第一章笔记

    章1.62 (1).python区分大小写. (2).python忽略在符号#之后的同行的内容 (3).python和matlab很相似(个人感觉) (4).章节1.91: >>>i ...

  6. 重新编译安装swoole支持OpenSSL

    1.下载:wget http://pecl.php.net/get/swoole-1.9.22.tgz 2.解压:tar zxvf swoole-1.9.22.tgz 3.扩展模块:cd swoole ...

  7. html canvas 的宽高以及像素限制

    canvas 宽高设置不合适的话,是画不出东西出来的 https://stackoverflow.com/questions/6081483/maximum-size-of-a-canvas-elem ...

  8. 论如何优雅地拿下PHPCMS

    作者:J0o1ey 原文来自:论如何优雅地拿下PHPCMS 一.PHPCM       PHP是国内领先的网站内容管理系统,同时也是一个开源的PHP开发框架,采用PHP5+MYSQL进行开发,拥有非常 ...

  9. 在虚拟机上安装redis集群,redis使用版本为4.0.5,本机通过命令客户端可以连接访问,外部主机一直访问不了

    在虚拟机上安装了redis 4 ,启动后本机客户端可以连接访问,但是外部主机一直访问不了,在使用java代码连接redis集群时报:no reachable node in cluster,原因:在r ...

  10. typescript handbook 学习笔记4

    概述 这是我学习typescript的笔记.写这个笔记的原因主要有2个,一个是熟悉相关的写法:另一个是理清其中一些晦涩的东西.供以后开发时参考,相信对其他人也有用. 学习typescript建议直接看 ...