两数相加(java)

2023-11-16

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

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

例:

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

解析:创建一个链表进行存储,同时遍历两个链表读取数据进行相加,并记录进位数放到下一次计算里面,最后对对高位是否需要创建新的节点做判断即可。

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode pre = new ListNode(0);
        ListNode cur = pre;
        int carry = 0;
        while(l1 != null || l2 != null){
            int x = l1 == null? 0 : l1.val;  // 链表1的值
            int y = l2 == null? 0 : l2.val;  // 链表2的值
            int sum = x + y + carry;  // 两个值加上进位

            carry = sum / 10;  // 计算进位
            sum = sum % 10;  // 计算个位数
            cur.next = new ListNode(sum);  // 保留个位数创建新节点

            cur = cur.next;  // 当前节点后移
            if(l1 != null)  
                l1 = l1.next;  // 链表1节点后移
            if(l2 != null)
                l2 = l2.next;  // 链表2节点后移
        }
        if(carry == 1){  // 最后一位进位
            cur.next = new ListNode(carry);  // 创建出新的位数节点
        }
        return pre.next;  // 第一个节点没有值,从第二个节点开始
    }
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两数相加(java) 的相关文章

  • 在 Eclipse 中隐藏重复的工具栏项

    我不知道如何 但我的 STS 有重复的工具栏项目 我不知道如何删除它们 这是我复制的工具栏的样子 我想摆脱这些 我试图隐藏工具栏 但这没有帮助 有人知道如何删除重复的吗 自从升级到 Oxygen 以来 我一直遇到同样的问题 我无法可靠地重现
  • 在此代码中,Runnable 未实例化。为什么?

    Runnable cannot instantiate public class Thread4 public static void main String args Thread t1 new Thread new Runnable R
  • APNS(Apple 推送通知服务器)的反馈服务

    我们正在使用Java作为推送通知提供商APNS I我能够将消息发送到APNS但我不知道如何获得该消息的反馈 请帮忙 反馈服务具有类似于用于发送推送通知的接口的二进制接口 您可以通过以下方式访问生产反馈服务feedback push appl
  • 如何停止使用扫描仪从标准输入读取多行?

    我正在做一个 JAVA 作业 应该处理多行输入 指令显示 输入是从标准输入读取的 给出了示例输入的示例 one 1 two 2 three 3 我不明白上面的示例输入 从标准输入读取 是什么意思 这是我编写的一个测试程序 它可以消除我的困惑
  • 如何添加 Java 正则表达式实现中缺少的功能?

    我是 Java 新手 作为一名 Net 开发人员 我非常习惯Regex Net 中的类 Java 实现Regex 正则表达式 还不错 但它缺少一些关键功能 我想为 Java 创建自己的帮助器类 但我想也许已经有一个可用的了 那么 是否有任何
  • 外部实体更改后索引不更新

    我目前正在开发一个项目 使用 JPA 2 1 保存数据并使用 hibernate search 4 5 0 final 搜索实体 映射类和索引后 搜索工作正常 但是 当我更改值时描述B 类从 someStr 到 anotherStr 数据库
  • 如何修复maven错误JAVA_HOME环境变量未正确定义

    当我在虚拟环境中检查maven的版本时 出现以下错误 The JAVA HOME environment variable is not defined correctly This environment variable is need
  • java 中的 Try-with-resources 和 return 语句

    我想知道是否放一个return里面的声明尝试资源block 防止资源自动关闭 try Connection conn return conn createStatement execute 如果我写这样的东西将会联系被关闭 Oracle 文
  • 如何构建和使用 TimeSeriesCollections

    我想在图表的 X 轴上显示一些日期 并且here https stackoverflow com questions 5118684 jfreechart histogram with dates据说我必须使用 TimeSeriesColl
  • Java 中通用方法参数的 getClass()

    以下 Java 方法无法编译
  • 在片段之间切换时底部导航栏会向下推

    在我的活动中 我有一个底部导航栏和框架布局来显示片段 一切正常 但问题是当我开始按顺序从 1 4 移动时 底部导航栏保持在其位置 但当我突然从 4 跳到2 然后底部导航栏就会超出屏幕 当再次单击同一项目时 它就会回到正常位置 该视频将清楚地
  • 如何在启用嵌入时间戳和 LTV 的情况下签署 PDF?

    我正在尝试签署启用了时间戳和 LTV 的 pdf 以便它在 Adob e Reader 中显示如下 在英语中 这意味着 签名包含嵌入的时间戳 和 签名启用了 LTV 这是我正在使用的代码 PrivateKey pk get pk from
  • 如何在 Java 中创建一个带有连字符的值的静态枚举?

    如何创建如下所示的静态枚举 static enum Test employee id employeeCode 截至目前 我遇到了错误 这对于 Java 来说是不可能的 因为每个项目都必须是有效的标识符 并且有效的 Java 标识符可能不包
  • Java给定长度的随机数

    我需要在 Java 中生成一个恰好 6 位数字的随机数 我知道我可以在随机发生器上循环 6 次 但是在标准 Java SE 中还有其他方法可以做到这一点吗 要生成 6 位数字 Use Random http download oracle
  • 线程上下文类加载器和普通类加载器的区别

    线程的上下文类加载器和普通类加载器有什么区别 也就是说 如果Thread currentThread getContextClassLoader and getClass getClassLoader 返回不同的类加载器对象 将使用哪一个
  • 内部类的访问修饰符[重复]

    这个问题在这里已经有答案了 可能的重复 受保护 公共内部类 https stackoverflow com questions 595179 protected public inner classes 我确信这个问题已经被问过 但我找不到
  • 使用 Commons 或 Guava 将文本文件转换为 Java Set

    我想将文件中的每一行加载到 HashSet 集合中 有没有一种简单的方法可以做到这一点 怎么样 Sets newHashSet Files readLines file charSet 使用番石榴 参考 文件 readLines http
  • Javac 版本 1.7 无法为目标 1.7 构建

    我试图在 Linux Mint 系统上使用 Sun Java JDK 1 7 0 17 编译 Java 代码 但遇到了这个问题 javac version target 1 7 javac 1 7 0 17 javac invalid ta
  • 乔达时间中两个日期之间的天数

    如何找到两次之间的天数差异乔达时间 http www joda org joda time DateTime http www joda org joda time apidocs org joda time DateTime html实例
  • Swing:创建可拖动组件...?

    我在网上搜索了可拖动 Swing 组件的示例 但我发现示例不完整或不起作用 我需要的是一个摇摆组件那可以是dragged通过鼠标 在另一个组件内 被拖拽的时候 应该已经 改变它的位置 而不仅仅是 跳 到目的地 我很欣赏无需非标准 API 即

随机推荐

  • MVC 实现登录功能

    1 表单 2 数据层 3 逻辑层 4 servlet分发控制器
  • 高校巡讲总结—侯伯薇讲师

    这个月里面 借助CSDN的平台 在三所高校中做了 程序员修炼之路 的巡讲 在其中讲述了自己的一些经历 并和同学们聊了学习 思考和分享这三个要素 三所高校各自有各自的特点 感觉很有意思 一一叙述如下 首先 第一站是在辽宁工程技术大学 位于葫芦
  • 总结Windows下安装WSL与升级WSL2的方法

    目录 1 安装WSL1的方法 2 安装WSL2的方法 3 升级WSL1到WSL2的方法 1 打开win10的设置 搜索windows功能 打开启用或者关闭Windows功能 2 勾选以下2个地方 并重启 3 下载WSL2升级包 并点击安装
  • JS原型

    原型的概念 实例对象中 proto 是原型 是一个属性也是一个对象 是给浏览器使用的 是不标准的 这个叫隐式原型 构造函数中的prototype是原型 是一个属性也是一个对象 是给程序员用的 是标准的 proto 原型是浏览器使用的 有些浏
  • JDBC-数据库连接字符串

    SQLSERVER Connection conn DriverManager getConnection jdbc sqlserver localhost 1433 sa Oracle Connection conn DriverMana
  • 什么是rem单位和em单位?它们有什么区别?

    聚沙成塔 每天进步一点点 专栏简介 rem 和 em 单位 rem 单位 Root Em em 单位 区别总结 写在最后 专栏简介 前端入门之旅 探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到
  • vue使用echarts与echarts-gl实现3d地图与 3d柱状图

    目录 前言 一 下载echarts与echarts gl 二 vue引入与页面使用 1 引入 2 页面引入echarts gl 三 下载地图数据 四 使用地图 1 html初始化地图放入位置 2 data创建变量 3 创建地图 4 钩子函数
  • remote: Support for password authentication was removed on August 13, 2021

    1 github在2021年8月13日这天搞事情 如果这天你提交了github代码报错如下 remote Support for password authentication was removed on August 13 2021 P
  • 第3章 分布式文件系统HDFS

    3 1 分布式文件系统 3 1 1 计算机集群结构 3 1 2 分布式文件系统的结构 两类节点 1 主节点 Master Node 或称为 名称节点 NameNode 负责文件和目录的创建 删除和重命名等 同时管理着数据节点和文件块的映射关
  • python噪声

    1 skimage的API noise gs img util random noise img mode gaussian gaussian 高斯加性噪声 noise salt img util random noise img mode
  • 粒子群算法(PSO)优化RBF神经网络实践

    算法原理及流程 关于RBF神经网络的细节详见 RBF神经网络学习及实践 关于PSO算法的细节详见 粒子群优化算法 PSO python实践 PSO算法优化RBF神经网络训练流程图如下所示 代码实现 代码直接使用文章RBF神经网络学习及实践和
  • 23+ Useful HTML5 Open Source Online Video Players & Libraries,

    Akamai s Open Video Player for HTML5
  • blender基本操作

    文章目录 引言 一 选择 二 移动 1 xyz轴移动 2 xyz平面移动 3 精确移动 4 快捷键移动G 三 旋转 四 缩放 五 变换 1 变换坐标系 2 变换轴心 六 吸附 七 模式切换 八 物体的合并和分离 1 合并 2 分离 九 设置
  • 51单片机一个按键,通过单击,双击,三击,长按实现四种不同的led特效并且每次切换模式伴随不同的音效。(连击4下为无效指令)

    一个定时器负责扫描按键按下的时间长短 一个定时器负责实现具体的led特效功能 主函数循环扫描按键 避免了占用cpu资源过多 导致程序堵塞 无法扫描到按键等问题 还可以通过定时器来扫描按键按下 时长等 想要实现的程序放在主函数中执行 新人第一
  • [Matlab有限元分析] 1.有限元分析的发展、基本概念和特点

    英国有限元方法专家Zienkiewicz的书籍 有限元方法 在开头关于有限元方法的概述说的特别好 摘录如下 由于人类思维的局限 使得人们无法将复杂的宇宙万物只用简单的表达来概括 因此 人们会将复杂的系统分解成为一个个部件或者单元 而这些部件
  • cmake关键字file理解

    1 file WRITE filename message to write WRITE选项将会写一条消息到名为filename的文件中 如果文件已经存在 该命令会覆盖已有的文件 如果文件不存在 它将创建该文件 2 file APPEND
  • 解决Windows下安装PostgreSQL :“unable to write inside temp environment variable path”的错误

    Windows下安装PostgreSQL 启动安装程序的时候报错 unable to write inside temp environment variable path 解决方法 1 开始菜单 打开运行 2 输入regedit 打开注册
  • SQL Sever——远程过程调用失败(0x800706be)

    最近重装了系统 VS和SQL Sever莫名奇妙的不能用了 下面总结一下这个过程中遇到的问题 跟大家分享一下经验 大概是以前的安装过程都十分顺利 这次 在尝试了数次登陆不上去之后 我仍然怀疑是自己眼花了 怎么办 查吧 一开始我想到的 肯定是
  • Vmware安装虚拟机出现attempting to start up from?一文帮你解决

    有很多小伙伴在安装windows是会出现一个attempting to start up from提示 然后就会进入一个蓝色的页面 也就是下边这两张图 这时候会让你选择在这时候有很多小伙伴就懵了 我应该怎么选择 不要方 下边我来教你解决 下
  • 两数相加(java)

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