LeetCode2. 两数相加(java)

力扣:2. 两数相加 题解(Java) 题目地址: 题目描述: 解题思路: 代码: 阅读详情

题目:

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

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

示例:
在这里插入图片描述
代码:

  • 解法一
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
	public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
		ListNode p1=l1;
        ListNode p2=l2;
        ListNode root=new ListNode(0); //创建新的节点root
        ListNode  rear=root;
        int carry=0;	//进位
        while(p1!=null||p2!=null||carry!=0){	//只有两个链表都为空并且进位为0时 才结束
             ListNode n=new ListNode(0);	//创建结点
             n.val=((p1==null?0:p1.val)+(p2==null?0:p2.val)+carry)%10;	//给结点进行赋值
             carry=((p1==null?0:p1.val)+(p2==null?0:p2.val)+carry)/10;	//进位进行重赋值
            rear.next=n;
            rear=n;
            p1=(p1==null?p1:p1.next);	//后移
            p2=(p2==null?p2:p2.next);	//后移
        }
        return root.next;
    }
}
  • 别人的代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode firstNode = null, lastNode = null, currentNode = null;
		int carry = 0;
		
		while (l1 != null || l2 != null) {
			int val1 = 0, val2 = 0;
			
			if (l1 != null) {
				val1 = l1.val;
				l1 = l1.next;
			}
			if (l2 != null) {
				val2 = l2.val;
				l2 = l2.next;
			}
			
			int combineVal = val1 + val2 + carry;
			if (combineVal > 9) {
				carry = 1;
				combineVal = combineVal % 10;
			} else {
				carry = 0;
			}
			
			currentNode = new ListNode(combineVal);
			if (firstNode == null) {
				firstNode = currentNode;
				lastNode = currentNode;
			} else {
				lastNode.next = currentNode;
				lastNode = lastNode.next;
			}			
		}
		
		if (carry == 1) {
			lastNode.next = new ListNode(1);
		}
		
		return firstNode;
    }
}
【Apollo规划模块探秘】—— 场景(Scenario)驱动的决策引擎 本文深入解析了Apollo自动驾驶平台规划模块的核心机制——场景(Scenario)驱动的决策引擎。文章通过类比日常驾驶,阐述了规划模块如何像经验丰富的司机一样,根据不同的路况(如车道跟随、无保护左转)切换不同的“驾驶模式”。重点剖析了场景管理器(ScenarioManager)如何基于感知信息进行场景判断与切换,以及“场景-阶段-任务”双层状态机如何精密协作,实现灵活、高效且安全的轨迹规划。 阅读详情

相关推荐

SAP MM 物料描述MAKTX 40个字符不够用的问题处理

SAP物料描述表,长度40个字符一般情况下,40个字符在描述中也够用了,但是要加上规格之类的额外描述就不一定了,特别是对于辅助件-刀具。解决方案一:对maktx增强,换成CHAR80或者CHAR100的,但是风险较大,涉及到好多地方,另外SAP+ 算号器 也不支持。解决方案二:增强字段。内部顾问,建议在 那就在这里加一个字段,具体过程如下:1、创建域2、创建架构3、附加架构4、GUI 设置 5、后台设置6、MASS/MM17字段新增。过程1、创建域 SE112、创建结构 se11 3、MARA附加架构

GAVIN 4728

力扣(LeetCode) 2.两数相加 java

2.两数相加(中等) 题目如下: 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 1: 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. 示例 2: 输入:l1 = [0], l2 = [0] 输出:[0] 示例 3: 输入:l1 = [9,9,9,9

我命由己不由天 361

逆向工程师视角:拆解DataDome滑块验证码的3层防护机制与绕过思路

本文从逆向工程师视角,深入剖析DataDome滑块验证码的三层核心防护机制。第一层通过动态加密参数实现会话绑定与抗重放;第二层采集TLS指纹、鼠标轨迹动力学等多维行为数据进行一致性验证;第三层则是基于机器学习的后端异步风险决策引擎。文章不仅拆解了其技术原理,更分享了模拟、钩取等超越单纯工具调用的底层分析与绕过思路。

f6g7h8i9j的博客 730

力扣leetcode 2. 两数相加 java

* Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode reverse(ListNo...

izhxxx的博客 269

红外图像和可见光图像异源图像配准问题研究

本文旨在研究一种具有高准确率和鲁棒性的融合图像障碍物检测技术,通过把红外和可见光图像进行图像配准和融合,获取高质量的异源融合图像,根据融合图像的特点采用有效的障碍物检测算法,将图像中的障碍物准确检出。......

G_redsky的博客 1万+

揭秘无人机前沿领域的科技新突破

本文旨在系统性地介绍无人机技术在前沿领域的最新突破,涵盖从基础理论到实际应用的各个方面。我们将重点关注那些正在改变无人机行业面貌的关键技术创新,并分析它们对未来发展的影响。文章首先介绍无人机技术的基础概念和背景,然后深入探讨六个关键领域的技术突破,接着分析实际应用案例,最后展望未来发展趋势。自主导航系统(SLAM):同时定位与地图构建技术,使无人机能在未知环境中自主导航计算机视觉(CV):使无人机能够"看"和理解周围环境的技术5G通信:第五代移动通信技术,提供高速、低延迟的数据传输能源管理。

AI天才研究院 1490

【LeetCode_2】力扣--两数相加(Java)

力扣第二题题解

qq_75238809的博客 730

【存储原理】IO超时处理 块层block-scsi层之间

【存储原理】IO超时处理 块层block-scsi层之间

sinat_37817094的博客 1024

leetcode 2. 两数相加( Java解法 )

题目 : 给定两个非空链表来表示两个非负整数. 位数按照逆序方式存储, 他们的每个结点只存储单个数字, 将两数相加返回一个新的链表. 除了数字 0 之外, 这两个数字都不会以 0 开头 实例 : 输入 : ( 2 -> 4 -> 3 ) + ( 5 -> 6 -> 4) 输出 : 7 -> 0 -> 8 原因 : 342 + 465 = 807 ...

weixin_43235210的博客 1299

科研级实战】YOLOv11 pose部署至RK3588全流程:让姿态估计模型在边缘端毫秒级运行,我来帮你突破人体行为分析落地壁垒

在智慧安防人体行为分析场景中,基于YOLOv11 pose的模型在云端推理单帧耗时150ms,硬件成本超15000元;经本方案部署到RK3588后,单帧推理耗时降至30ms,硬件成本仅4000元,且关键点检测准确率高达93%以上。在运动姿态评估场景,同款技术路径使模型边缘端推理速度提升6倍,姿态分类精度达95%。这意味着,你也能让自己的姿态估计模型在边缘设备上实现的工业化落地,接下来让我们开启从模型训练到端侧部署的实战征程。

m0_71589036的博客 223

【YOLO系列】YOLOv8详解:模型结构、损失函数、训练方法及代码实现

YOLOv8是Ultralytics团队2023年推出的高效目标检测框架,在速度与精度平衡、多任务支持和易用性方面实现突破。模型采用改进的CSPDarknet主干网络、C2f模块和SPPF加速结构,结合PAN-FPN特征融合和解耦检测头设计,支持目标检测、实例分割和关键点检测任务。创新性地使用CIoU定位损失、Focal Loss置信度损失和动态样本分配策略,显著提升检测性能。实验表明,YOLOv8较前代模型mAP提升5-10%,在TensorRT加速下可达1000FPS,提供5种尺寸灵活选择,成为实时目标

一碗白开水一 2779

leetcode力扣 2. 两数相加 java

其实是相当于加法的竖式算法,直接按照列表顺序就可以竖式的相加进位运算了,不需要再翻转列表然后相加了。因为在加法的竖式计算时每列的结果是上下位相加和进位,最大只有19,不会超过20,所以不需要用除法“/”和余数“%”。需要注意的是结果的下一位的产生与否,在本位相加有进位数的时候一定会有下一位(比如示例1中4 和6 相加),还有一条列表的数字还没计算完的时候也需要提前建好下位的结果,提前new 一个0。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。

weixin_43467758的博客 224

YOLOv11 损失函数进阶:Varifocal Loss 让正负样本精度双升

创建self.alpha = alpha # 正样本权重系数self.gamma = gamma # 聚焦系数self.lambda_reg = lambda_reg # 回归损失权重# 分类损失:Varifocal Classification Loss# 正样本权重:基于预测置信度# 计算 BCE 损失并加权cls_loss = cls_loss.sum() / (cls_true.sum() + 1e-6) # 按正样本数归一化。

m0_71589036的博客 440

【LeetCode 力扣】2.两数相加 Java实现 模拟 递归

【LeetCode 力扣】2.两数相加 Java实现 模拟 递归

RanLZ的博客 668

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Leetcode 第2题 两数相加(Java实现)

Leetcode 第2题 两数相加(Java实现) 解题思路 刚刚学完韩顺平老师的《数据结构与算法》的链表部分,就来leetcode上找了一道题来练习。 首先定义一个ListNode的类,val用来存放整型数据,.next指向下一个节点; 再定义两个链表相加的函数,输入为链表l1和l2; 2.1定义一个头节点head,它不用来存放数据,只是用于索引; 2.2 定义一个类型为ListNode的中...

zz651044657的博客 476

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java中用add函数求两数之和_【LeetCode题解】2_两数相加

【LeetCode题解】2_两数相加描述给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807方法一:小学数学思...

weixin_39957271的博客 1973

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java实现 LeetCode 2 两数相加

两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0...

南 墙 1万+

leetcode hot100 之【LeetCode 2. 两数相加】 java实现

LeetCode 2. 两数相加

DataCrafter的博客 514

java学习随笔之力扣(LeetCode)算法题--2.两数相加

题目:2.两数相加 --------- 难度:中等 题目链接: https://leetcode-cn.com/problems/add-two-numbers/ 题目描述: 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例1: 输入:L1 = [2,4,3], L2 = [5,6,4] 输出:[7,0,8] 解释:

qq_45975878的博客 767

力扣(LeetCode) 2.两数相加 java实现

题目 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 1: 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. 示例 2: 输入:l1 = [0], l2 = [0] 输出:[0] 示例 3: 输入:l1 = [9,9,9,9,9,9,9],

qq_42738004的博客 338

力扣LeetCode超详细题解:2. 两数相加(Java)

2. 两数相加 难度 中等 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 1: 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. 示例 2: 输入:l1 = [0], l2 = [0] 输出:[0] 示例 3:

weixin_45254569的博客 746

LeetCode2:两数相加(Java)

LeetCode2:两数相加(Java)题目记录目的代码区题目中提供的节点定义链表插入时我犯的错误错误1错误2我的算法实现缺点部分别人的算法实现优秀的思想部分 题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6

ninelie's blog 468

力扣(LeetCode) 2.两数相加(java)

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

Cnc2014的博客 619

力扣Leetcode——2.两数相加(Java)

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} *

qq_41861146的博客 353

力扣(LeetCode)HOT100 No.2 两数相加 Java

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

Chenshu_iii的博客 403

力扣Leetcode:2. 两数相加(C++、Python、Java)

题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 题解 这道题目比较简单,从前到后遍历两个链表,对应位置上的数字相加,同时注意进位即可。具体地: 当前位置相加后的结果需要取余10。 当前位置不仅要加两个数,还要加上前一步的进位值。 若当前位置相加后大于10,要向后进位。 可能最后计算出的结果会多出来一位。 这里

乔卿的博客 442
上一篇: LeetCode747. 至少是其他数字两倍的最大数(java)
下一篇: LeetCode724. 寻找数组的中心索引(java)
inferno devil
博客等级 码龄9年 54粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值