英文题目为:

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.You may assume the two numbers do not contain any leading zero, except the number 0 itself.Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8

中文题目为:

给你两个非空链接表,代表两个非负整数。 数字以相反的顺序存储,并且它们的每个节点包含单个数字。
将两个数字相加,并将其作为链表返回。
您可以假设这两个数字不包含任何前导零,除了数字0本身。
输入:(2 -> 4 -> 3)+(5 -> 6 -> 4)
输出:7 -> 0 -> 8

实现如下:

#!usr/bin/env python
# encoding:utf-8
from __future__ import division"""
__Author__:沂水寒城给你两个非空链接表,代表两个非负整数。 数字以相反的顺序存储,并且它们的每个节点包含单个数字。
将两个数字相加,并将其作为链表返回。
您可以假设这两个数字不包含任何前导零,除了数字0本身。
输入:(2 -> 4 -> 3)+(5 -> 6 -> 4)
输出:7 -> 0 -> 8
"""import sysclass singleNode:"""单节点类"""def __init__(self, x):self.value = xself.next = Noneclass singleLink:"""单链表"""def __init__(self):self.head = Nonedef creatLink(self, data):"""基于参数创建单链表结构"""self.head = singleNode(data[0])linkHead = self.headtemp = self.headfor i in data[1:]:node = singleNode(i)temp.next = nodetemp = temp.nextreturn linkHeaddef showLink(self, head):"""展示链表结构"""if head is None:returnnode = headnode_list = []while node != None:node_list.append(str(node.value))node = node.nextprint("->".join(node_list))class Solution:"""计算方法类"""def twoLinkSum(self, l1, l2):"""反向链表相加"""temp = singleNode(0)l3 = tempa = 0while l1 != None or l2 != None or a != 0:if l1 != None:a += l1.valuel1 = l1.nextif l2 != None:a += l2.valuel2 = l2.nexttemp.next = singleNode(a % 10)temp = temp.nexta = a // 10return l3.nextif __name__ == "__main__":print("请输入链表1: ")input1 = sys.stdin.readline().strip()D_list1 = list(map(int, input1.split("->")))print("请输入链表2: ")input2 = sys.stdin.readline().strip()D_list2 = list(map(int, input2.split("->")))myLink = singleLink()# 创建链表1l1 = myLink.creatLink(D_list1)print("链表1为: ")myLink.showLink(l1)# 创建链表2l2 = myLink.creatLink(D_list2)print("链表2为: ")myLink.showLink(l2)# 求和problem = Solution()res = problem.twoLinkSum(l1, l2)print("结果链表为: ")myLink.showLink(res)

结果如下:

当然,这里也可以使用列表的形式来更简单的实现。实现如下:

def listFunc(D_list1, D_list2):'''基于列表实现'''num1=int(''.join([str(O) for O in D_list1[::-1]]))num2=int(''.join([str(O) for O in D_list2[::-1]]))print('num1: ', num1)print('num2: ', num2)res=num1+num2result='->'.join(list(str(res))[::-1])print(result)

几行代码就实现了上面的计算,结果截图如下所示:

leetcode——给你两个非空链接表,代表两个非负整数。 数字以相反的顺序存储,并且它们的每个节点包含单个数字。 将两个数字相加,并将其作为链表返回。相关推荐

  1. leetcode C++ 2. 两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数

    一.C++ ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {ListNode *resList = new ListNode(-1);resL ...

  2. SpringBoot基于AOP实现自定义非空验证的注解

    为了避免对大量参数进行过多的非空校验,我们可以自定义一个非空验证的注解,因为spring自带的@RequestParam并不能对参数进行非空 准备工作 首先需要创建一个spring boot项目,并引 ...

  3. 【Kotlin】变量简介 ( 可空类型 | lateinit | 初始化判定 | 非空类型 | !! 与 ? 修饰符 | ?= ?. ?: 运算符 | 抽象属性变量)

    文章目录 I . Kotlin 变量总结 II . Kotlin 非空变量 III . 非空变量不能赋空 IV . lateinit 关键字 V . lateinit 初始化判定 VI . Kotli ...

  4. pandas取每行最后一个非空元素

    pandas中获取每行最后一个非空元素 公司有一个问答产品,业务需要分析用户的主要跳出问题,而我得到的数据是一张含有每道题的问题和回答的excel表格,用pandas读取如下图所示. 可以看到针对每个 ...

  5. MVC的Model层验证(非空,手机号验证)

    在用MVC做项目的时候,我们常常需要做用户登录注册的一些提示,比如手机号格式不正确,邮箱不正确,用户名不能为空等.今天先总结下在MVC的Model层中实现注册的验证.若有问题,欢迎大家指出. 第一步: ...

  6. 加一(非空数组)(力扣)

    给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1 ...

  7. C++定义一个Dog类,包含体重和年龄两个成员变量和相应的成员函数。

    定义一个Dog类,包含体重和年龄两个成员变量和相应的成员函数. [问题描述] 定义一个Dog类,包含体重和年龄两个成员变量和相应的成员函数.声明一个实例dog1,体重为5,年龄为10,使用I/O流把d ...

  8. 两个非递减有序单链表La和Lb合并成一个非递增有序链表Lc

    #include<iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> ...

  9. 两个非递减链表合并为非递增链表(可重复)

    *题目:将两个非递减的有序链表合并为一个非递增的有序链表. * 要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间. * 表中允许有重复的数据. 非递减是指两相邻数是递增或者相等的,非 ...

  10. Java实现两个递增有序链表合并成一个递增有序链表和两个非递减有序链表合成一个非递增有序链表

    代码如下: package sjjgniub;import java.util.LinkedList; import java.util.Scanner;@SuppressWarnings(" ...

最新文章

  1. MySQL sysdate-5_mysql sysdate 1
  2. explicit关键字详解(C++ )
  3. 我们很需要“企业即时通讯”
  4. Composition-based Multi-Relational Graph Convolutional Networks 多关系图神经网络 ICLR 2020
  5. fhq-treap模板
  6. Mac上有没有好用的WiFi无线网络管理工具?看这里
  7. JAVA正则表达式校验中国大陆手机号段【2022年2月】
  8. python连接sftp下载文件及文件夹
  9. ETH数据集下载及相关问题
  10. IME输入法编程 第一章
  11. CV2逐步学习-2:cv2.GaussianBlur()详解
  12. [数学]二维对数正态分布的概率分布,期望,方差和相关系数
  13. c# 计算圆锥的体积_用c#编写一个程序计算出球、圆柱和圆锥的表面积和体积。...
  14. jdk的exe安装版和zip压缩版有什么区别
  15. 好用的不行不行!超级炫酷的键盘最应该留给最般配的猿们!
  16. 二进制中截断及浮点数储存规则
  17. 秒懂设计模式之工厂方法模式(Factory Method Pattern)
  18. C#中根据经纬度计算两点的距离
  19. ati jti jwt 和_什么是JWT
  20. 商业计划书怎么写 写商业计划书流程 商业计划书要求

热门文章

  1. 混合开启服务-----百度音乐盒
  2. 基于DEV控件库的webservice打印.repx模板
  3. 计算出 3 至 1000 范围内最大的十个素数,放入数组中,并计算出其累加和。
  4. docker 常用命令 五 容器日志
  5. Docker-端口映射实现访问容器
  6. 坑爹的RockSaw和坑爹的windows7
  7. PagerAdapter跟BaseAdapter的覆盖
  8. 纯CSS3浮雕质感的立体文字旋转动画
  9. 关于RabbitMQ Queue Argument的简介
  10. ubuntu下rz,sz命令用法