445. 两数相加 II(Java)

目录

  • 题目描述:
  • 输入:
  • 输出:
  • 代码实现:

题目描述:

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。
你可以假设除了数字 0 之外,这两个数字都不会以零开头。

在这里插入图片描述

输入:

l1 = [7,2,4,3], l2 = [5,6,4]

输出:

[7,8,0,7]

代码实现:

新建一个结点类:

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;}
}

主函数代码:

public class Main{public static void main(String[] args) {//链表1ListNode l1 = new ListNode(7);l1.next = new ListNode(2);l1.next.next = new ListNode(4);l1.next.next.next = new ListNode(3);//链表2ListNode l2 = new ListNode(5);l2.next = new ListNode(6);l2.next.next = new ListNode(4);//先反转//调用函数ListNode head = addTwoNumbers(l1, l2);//打印结果链表ListNode l = head;while (l != null) {System.out.print(l.val + " ");//7 8 0 7l = l.next;}}//反转链表public static ListNode reverseList(ListNode head) {//前驱指针ListNode pre = null;//当前指针ListNode current = head;//后继指针ListNode next;//反转操作while (current != null) {//保存后继结点信息next = current.next;//当前结点指向前驱current.next = pre;//pre指向当前结点pre = current;//当前结点指针指向下一个结点current = next;}//pre为反转之后的头结点return pre;}/*** 依次从头指针的位置开始取两条链表的运算数,做加法运算:得到每一轮的结果之和将余数存入,* 对结果取余,得到进位的值,并在下一轮运算中做加数** @param l1 链表1* @param l2 链表2* @return 结果链表的头指针*/public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {//先反转用于运算l1 = reverseList(l1);l2 = reverseList(l2);//定义最终链表的头指针和尾指针ListNode head = null;//头指针ListNode tail = null;//尾指针int up = 0;//进位数while (l1 != null || l2 != null) {int val1 = l1 == null ? 0 : l1.val;//当前l1指向的数值int val2 = l2 == null ? 0 : l2.val;//当前l2指向的数值int sum = val1 + val2 + up;//本轮计算结果if (head == null) {//第一次运算结果:初始化头指针和尾指针head = tail = new ListNode(sum % 10);//取模压入元素} else {//依次转入后续计算结果tail.next = new ListNode(sum % 10);tail = tail.next;//尾指针后移一位}up = sum / 10;//计算当前进位数大小if (l1 != null) {l1 = l1.next;//链表1往后取下一轮运算数}if (l2 != null) {l2 = l2.next;//链表2往后取下一轮运算数}}//whileif (up > 0) {//如果最后一轮还存在进位的情况tail.next = new ListNode(up);//在链表尾部添加进位数}//再反转结果return reverseList(head);//返回结果链表的头指针}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/700927.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSP-202209-3-防疫大数据

CSP-202209-3-防疫大数据 解题思路 一、数据结构定义 对于大模拟的题&#xff0c;合适的数据结构选择十分重要&#xff0c;正确的数据结构选择能够有效的提升解题效率 // 漫游消息结构体 struct RoamingData {int date, user, region; };vector<RoamingData> roamin…

汇编反外挂

在软件保护领域&#xff0c;尤其是游戏保护中&#xff0c;反外挂是一个重要的议题。外挂通常指的是一种第三方软件&#xff0c;它可以修改游戏数据、操作游戏内存或提供其他作弊功能&#xff0c;从而给玩家带来不公平的优势。为了打击外挂&#xff0c;游戏开发者会采取一系列措…

web安全学习笔记【16】——信息打点(6)

信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot等[1] #知识点&#xff1a; 1、业务资产-应用类型分类 2、Web单域名获取-接口查询 3、Web子域名获取-解析枚举 4、Web架构资产-平台指纹识别 ------------------------------------ 1、开源-C…

代码随想录算法训练营第二十四天补|● 回溯理论基础 ● 77. 组合

回溯理论基础、组合问题 回溯理论基础 回溯能解决的问题 回溯的本质是穷举&#xff0c;穷举所有可能&#xff0c;然后选出我们想要的答案 回溯如何穷举&#xff1a; 横向遍历for循环&#xff0c;纵向遍历backtracking&#xff08;递归&#xff09;&#xff0c;一般来说&#…

pikachu靶场-RCE

介绍&#xff1a; RCE(remote command/code execute)概述 RCE漏洞&#xff0c;可以让攻击者直接向后台服务器远程注入操作系统命令或者代码&#xff0c;从而控制后台系统。 远程系统命令执行 一般出现这种漏洞&#xff0c;是因为应用系统从设计上需要给用户提供指定的远程命…

【数据结构】排序

目录 1.排序的概念及其应用 1.1排序的概念 1.2排序的应用 1.3常见的排序算法 2.常见排序算法的实现 2.1插入排序的实现 2.11基本思想 2.12直接插入排序 2.2希尔排序&#xff08;缩小增量排序&#xff09; 2.21基本思想 2.22希尔排序 2.3选择排序 2.31基本思想 2.3…

蓝桥杯《数字三角形》

题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径&#xff0c;把路径上面的数加起来可以得到一个和&#xff0c;你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。此外&…

JavaScript 进阶02

深入对象 构造函数 构造函数是用于创建对象的函数。 <script> //构造函数 构造函数的首字母大写 function Obj(name,age,aaa){this.namenamethis.ageage } //调用函数 const obj1new Obj("小明",4) console.log(obj1) </script> 使用 new 关键字调用…

Java之线程同步、synchronized用法及原理

线程的同步 场景1&#xff1a;两个线程同时访问一个变量&#xff0c;一个线程自增&#xff0c;一个线程自减 public class thread11 {public static void main(String[] args) throws InterruptedException {Thread thread1 new AddThread();Thread thread2 new DecThread(…

如何开发通过蓝牙技术实现灯光智能调节的小程序

近年来&#xff0c;随着智能家居市场日渐兴起&#xff0c;人们对于家居生活品质的需求不断提升。在这一背景下&#xff0c;蓝牙智能调节小程序的开发能够为客户提供更便捷、智能化的LED灯光调节方案。需求方想要实现通过蓝牙开发实现LED灯光亮度和颜色的智能调节&#xff0c;同…

DAY29--learning English

一、积累 1.sign up for 2.business trip 3.calendar 4.acne 5.band-aid 6.scar 7.prescription 8.pimple 9.saucy 10.slurp 11.germaphobe 12.shred 13.boggle 14.platser 15.lick 16.sling 17.smack 18.stereotype 19.salmon 20.cable 二、练习 1.牛津原译 calendar. /ˈk…

Windows中的Git Bash运行conda命令:未找到命令的错误(已解决)

在windows中的Gitbash中 打开激活conda环境&#xff0c;并运行&#xff08;前提是你先安装好git&#xff08;自己去官网下载&#xff09;&#xff09;。 要能够在Gitbash上运行Conda&#xff0c; 临时配置 如果你只是临时用一下&#xff0c;就是临时爽一把&#xff0c;那就按…

线程池(ThreadPoolExecutor,as_completed)和scrapy框架初步构建——学习笔记

用法1&#xff1a;map函数 with ThreadPoolExecutor() as pool: results pool.map(craw,utls)for result in results:print(result) 1.Scrapy框架&#xff1a; 五大结构&#xff1a;引擎&#xff0c;下载器&#xff0c;爬虫&#xff0c;调度器&#xff0c;管道&#x…

【vue】provide/inject

provide/ inject这对选项需要一起使用&#xff0c;以允许一个祖先组件向其所有子孙后代注入一个依赖&#xff0c;不论组件层次有多深&#xff0c;并在起上下游关系成立的时间里始终生效。 通途点来讲可以用来实现隔代传值&#xff0c;传统的props只能父传子&#xff0c;而 prov…

1.QT简介(介绍、安装,项目创建等)

1. QT介绍 Qt&#xff08;官方发音 [kju:t]&#xff09;是一个跨平台的C开发库&#xff0c;主要用来开发图形用户界面&#xff08;Graphical User Interface&#xff0c;GUI&#xff09;程序 Qt 是纯 C 开发的&#xff0c;正常情况下需要先学习C语言、然后在学习C然后才能使用…

Linux--shell编程中内部表和外部表之间的转换

内部表和外部表之间的转换 1、查询表的类型 desc formatted student; Table Type: MANAGED_TABLE 2、修改内部表student为外部表 alter table student set tblproperties(EXTERNALTRUE); 3、查询表的类型 desc formatted student; Table Type: EXT…

神经网络系列---归一化

文章目录 归一化批量归一化预测阶段 测试阶段γ和β&#xff08;注意&#xff09;举例 层归一化前向传播反向传播 归一化 批量归一化 &#xff08;Batch Normalization&#xff09;在训练过程中的数学公式可以概括如下&#xff1a; 给定一个小批量数据 B { x 1 , x 2 , … …

《隐私计算简易速速上手小册》第8章:隐私计算对机器学习和 AI 的影响(2024 最新版)

文章目录 8.1 机器学习中的隐私问题8.1.1 基础知识8.1.2 主要案例:使用差分隐私的机器学习8.1.3 拓展案例 1:基于隐私的数据聚合8.1.4 拓展案例 2:保护隐私的推荐系统8.2 使用隐私计算加强 AI 安全8.2.1 基础知识8.2.2 主要案例:使用同态加密的数据分析8.2.3 拓展案例 1:安…

134 Linux 系统编程11 ,readlink命令,文件目录rwx权限差异,目录操作函数

一 readlink 命令 前面知道&#xff0c;如果a.soft是一个软链接&#xff0c;我们使用 cat a.soft,会直接查看这个软链接指向的文件 那么我们就是想看这个软链接是啥&#xff0c;可以使用 readlink a.soft 二 获取工作目录 getcwd函数 获取进程当前工作目录 (卷3&#xff0c;标…

camunda源代码编译运行(一):下载编译camunda源代码

使用camunda开源工作流引擎有多种方式&#xff0c;包括&#xff1a;通过docker运行、使用springboot集成、部署camunda发行包、基于源代码编译运行等多种方式&#xff0c;其中&#xff0c;通过源代码编译集成整合方式&#xff0c;是最复杂的一种方式&#xff0c;文本重点介绍如…