英文题目为:

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. 替代离线RL?Transformer进军决策领域,「序列建模」成关键
  2. 安装和使用Smokeping(二)
  3. HTML基础笔记-02
  4. win10 搭载文件服务器,win10远程文件服务器
  5. 百练OJ:2678:基因检测
  6. Android Studio中引入RecyclerView的v7包
  7. 枚举Enum与注解Aunotation大杂烩
  8. 自动设置图片的序号_巧用word软件中的题注功能,让你插入的对象自动排序与更新...
  9. bootstrap-导航(基础样式)
  10. 斐讯N1刷Armbian_5.62,无法自动获取到ip怎么办?
  11. vuex 在非组件中调用 mutations 方法
  12. 解决“Automation 服务器不能创建对象”的问题!
  13. 360安全卫士v3.0beta3版发布!
  14. BamlViewer修改
  15. 优化 | 运筹学:从入门到毕业
  16. 零基础入门学习HTML(下)
  17. c语言.jpg图片转成数组_怎么把Word转成PDF?一个PDF转换软件就能搞定!
  18. c语言嵌入式开发键盘,C语言嵌入式系统编程修炼之键盘操作篇
  19. iframe 无刷新图片上传图片
  20. 人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载)

热门文章

  1. 简易RAM的C++实现
  2. 跨域详解之-----Jsonp跨域
  3. 主机网络切换后,docker toolbox里的容器网络不通了,解决方法
  4. ThinkPHP去除url中的index.php
  5. Linux中grep命令使用方法
  6. 硬盘分区变为RAW文件系统后的解决办法
  7. net helpmsg get error message for error id in cmd script
  8. Wannafly挑战赛2D Delete (最短路好题)
  9. 2019.04.17 面向对象编程篇207
  10. BZOJ2303 APIO2011方格染色(并查集)