LeetCode 2 两数相加 |算法

力扣(Leetcode)第2题:两数相加(C语言版本) 通常,我们从左到右书写数字,例如数字123,最左边的是最高位(百位),然后是十位,最后是个位。但是在这个特殊的表示法中,链表的第一个节点将代表个位数,第二个节点代表十位数,以此类推,最左边的节点(链表的头节点)代表最低位,而最右边的节点(链表的尾节点)代表最高位。在这种表示法中,每个节点只存储一个数字(0-9),并且每个链表的第一个节点(最近个位)实际上是整个数字的最低有效位,而最后一个节点(最远离个位)是最高位。由于每个节点只存储一位数字,相加的结果可能需要进位到下一个更高的位。它们每位数字都是按照。 阅读详情

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

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

你可以假设除了数字 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], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]

提示:

每个链表中的节点数在范围 [1, 100] 内
0 <= Node.val <= 9
题目数据保证列表表示的数字不含前导零

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-two-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
 //不能想着全部相加后换回去,位数过多会做不了,应该是每一位相加时就换回去
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode*result=new ListNode(0),*a=result;
        int sum=0;
        while(l1!=nullptr||l2!=nullptr||sum!=0){//sum!=0作用是最高位进位时l1,l2都为null,需要它
           if(l1!=nullptr){
                sum+=l1->val;
                l1=l1->next;
           }
           if(l2!=nullptr){
                sum+=l2->val;
                l2=l2->next;
           }
            a->next=new ListNode(sum%10);
            a=a->next;
            sum/=10;
        }
        
        return result->next;
    }
};
课程表--力扣Hot100 题目描述 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。 例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。 请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。 示例 阅读详情

相关推荐

力扣算法题2. 两数相加

2. 两数相加 第一次尝试后做不出来,看了一遍官方的解题思路后,开始修改自己的代码,最终通过,仅作学习记录,最后看了官方的代码,恍然大悟,自己写的确实不够标准和泛化,存在太多if语句,冗余严重,欢迎各位大佬指点! 下面附上自己写的代码和伪代码作为学习记录—— 解题思路 1.1 实例化两个指针l3,l4,l3:表头,l4:工作指针 1.2 初始化进位值w=0,i=0(i=1时表征第一次对l1和l2的表头元素做相加); 1.3 判断l1与l2指针的null情况 1.3.0 i++ 1.3.1 l1!=null

weixin_51735114的博客 824

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,9,9,9], l2 =

qq_44116786的博客 642

【LeetCode算法 - C#】2.两数相加

【LeetCode】2.两数相加 一眼理解本质算法的最清晰解法!

不咸不甜的奶糖乐园 1221

力扣第二题----两数相加(链表)

单链表解决解决加法问题--java,进位

m0_58354370的博客 906

python【力扣LeetCode算法题库】2-两数相加

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

NJU phd 在读。 868

【忍者算法】从生活到代码:解密链表大数相加的美妙算法|LeetCode 2 两数相加

想象你是一个超市收银员,正在计算两位顾客的购物总和。每位顾客的商品都按照从个位到高位的顺序摆放(比如54元就是先放4元商品,再放50元商品)。你需要一个一个地加起来,遇到超过10元的就进位。这个场景,恰恰就是我们今天要解决的链表两数相加问题的真实写照。

忍者算法的博客 711

力扣第二题(两数相加)详解

根据题目所给的信息可以很清楚的判断这是一个链表的题目,链表中的数如图所示排列。 题目给了很清晰的描述,所以可以直接进行简单的模拟算法,以此来完成该题的解题。 题解的整体思路是先创建一个链表来储存最后的结果,然后创建一个链表来指向该链表,再用一个数carry来记录相加后的进位,该想法的优点是不用判断再复杂的判断是否需要进位。后面就是整体的一个while循环,循环判断的条件是链表l1和l2不为空,且没有进位。循环的里面 是用来将l1和l2的链表中的数和进位carry相加。 后面就是将相加所得

m0_61459237的博客 785

LangGraph的容错机制:从节点失败到图级回滚

核心概念铺垫:讲解LLM应用容错与事务性的核心概念(幂等性、重试策略、降级策略、快照、回滚、原子性、一致性、隔离性、持久性、最终一致性),对比LangGraph容错机制与传统数据库ACID事务、Apache Airflow/Kubernetes Workflow/Kubeflow Pipelines容错机制的异同;LangGraph容错机制的演进历史:用markdown表格梳理LangGraph从0.0.1到1.5.0(截止202X年X月)的容错机制发展历程;节点级别的容错:重试与降级。

AI Python 编程之道的博客 172

『力扣和笔试算法』LeetCode:2.两数相加!

2. 两数相加! 文章目录1. 题目描述2. 算法实现2.1. 整体思路2.2. 实现代码参考文章 1. 题目描述 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字0之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 ->

AI新视界 719

CUDA详细安装及环境配置——环境配置指南 – CUDA+cuDNN+PyTorch 安装

本文详细介绍了如何确定显卡支持的CUDA版本、选择对应的cuDNN版本,并逐步安装CUDA、cuDNN和PyTorch。首先,通过命令行输入nvidia-smi.exe查看显卡支持的CUDA版本。接着,根据CUDA版本选择对应的cuDNN版本并下载。然后,从NVIDIA官方网站下载CUDA安装包,按照提示进行安装,并检查是否安装成功。同样地,下载cuDNN安装包,解压后将文件拷贝到CUDA安装目录中,并通过命令行验证安装是否成功。最后,根据PyTorch官网的指引,选择合适的安装命令进行PyTorch的安装

2501_90350274的博客 5098

Matlab:常见涡旋光束仿真

代码: clc clear all close all %% 环形涡旋光束 N = 200; lambda = 632e-9; %波长为632nm k = 2*pi/lambda; %波数 w0 = 3; %束腰半径 x = linspace(-10,10,N); y = linspace(-10,10,N); [X,Y] = meshgrid(x,y); [t...

zzz997的博客 3万+

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的博客 769

手把手教你低成本复刻大疆C板缓启动电路(附原理图与选型清单)

本文详细介绍了如何低成本复刻大疆C板缓启动电路,包括核心器件选型、电路搭建与调试实战、参数优化方法论及进阶改进思路。通过替代型号和优化设计,实现功能相近的缓启动电路,成本不到原方案的1/3,适合电子爱好者、在校学生和预算紧张的硬件工程师。

weixin_29197051的博客 397

LeetCode算法(2)_两数相加

LeetCode算法(2)_两数相加 import java.util.LinkedList; import java.util.List; /* * @lc app=leetcode.cn id=2 lang=java * * [2] 两数相加 */ // @lc code=start /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode n.

MUTONG的博客 160

NVIDIA DGX Spark实战指南:从开箱到AI模型高效部署

本文详细介绍了NVIDIA DGX Spark的开箱体验、硬件架构及AI模型高效部署实战指南。从1 PetaFLOP算力的迷你设备到Grace Blackwell超级芯片的深度解析,再到五分钟快速上手指南和大模型部署技巧,帮助开发者充分利用这款全球最小AI超级计算机的性能优势。

weixin_29239279的博客 1366

vue2 - 最新详细实现高德地图绘制动态热力图详细教程,在某区域或城市地图上做“热力图层“展示人流量、旅游人口密度、热量图、全国地区地理热力图,利用颜色的深浅表示密度或强度等场景(详细示例代码教程)

vue2,nuxt2,高德地图,热力图,绘制热力图层,报错,卡顿,出不来怎么办,无法关闭,怎么解决这个问题,出错,城市名称,城市某个街道,城区,省份,市区,县城,乡镇,村,各省份的热力图,交通流量,人口流量,密度,旅游出行,人口数量,颜色介绍,深浅代表,人流量,vue2使用高德地图实现某个区域热力图,vue高德地图api加载热力图及关闭,接收热力图数据并渲染热力图,关掉热力图,Vue使用高德API制作热力图,热力图加载不出来,电子围栏围住热力图,vue2中使用高德地图渲染热力图组件,高德地图使用热力图详细教

✅ 精选推荐文章 4201

【LeetCode】【算法】2. 两数相加

LeetCode 2. 两数相加

passer__jw767的博客 416

Xilinx/AMD公司7系列FPGA的ISERDESE2仿真的”天坑”(附verilog的源码vivado仿真工程)

研究LVDS输出接口的ADC与7系列(ZYNQ)FPGA对接过程中,在Vivado中搭建了ISERDESE2的仿真工程,仿真结果ISERDESE2的并行输出口一直输出X或Z,这个坑之大,耗费了我数天的时间,可以称为“天坑”了。同步复位的要求肯定是高于异步复位的,古话说得好“两害相权取其轻”,所以,跟古话对着干就对了!就当RST是同步复位吧,最后经过反复验证,发现。开始怀疑复位信号是否高电平持续时间不够长?但是没有查到复位时间的要求 : - (

FPGA艺术家的博客 171

算法小白刷力扣 2 - 两数相加

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

u011447403的专栏 1352

AgentScope 实战训练营-7 种多智能体协作模式详解

本教程基于阿里巴巴开源的AgentScope Java框架,系统讲解多智能体系统的开发方法。涵盖7种核心协作模式:Pipeline流水线、Routing路由、Handoffs智能体交接、Supervisor监督器、Subagent子智能体、Skills技能系统及Workflow工作流。详细阐述ReActAgent、AgentScopeAgent、StateGraph等核心概念,提供完整的配置示例与代码实现,帮助开发者快速掌握基于Spring AI Alibaba的多智能体应用开发。

program哲学 163

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LeetCode算法 2. 两数相加

剑指offer 两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 先来了解一下ListNode数据类型,ListNode是由自己定义的java中的链表对象 class ListNode { //类名 :Java类就是一种自定义的数据结构 int val;

weixin_46801232的博客 426

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

算法修炼之路——【链表】Leetcode 2 两数相加

文章目录题目描述思路分析边界条件考虑解题代码复杂度分析GitHub源码 题目描述 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字(即存在进位的情况)。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 示例1: 输入: listA = [2, 4, 3]; listB = [5, 6, 4] 输出: [7...

技术更新每天 276

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LeetCode 算法2.两数相加

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

zyqer1997的博客 625

C++ 算法题中链表的操作技巧总结 链表 模拟 力扣 2. 两数相加 题解 每日一题

本文围绕力扣 “两数相加” 链表题展开,先总结链表解题常用技巧,包括画图梳理思路、引入虚拟头节点、灵活定义节点及快慢双指针法。接着解析题目核心,即利用链表逆序存储特点模拟加法运算,重点处理进位和不同长度链表的遍历问题。通过对比繁琐与简洁两种代码实现,展现如何通过统一逻辑优化代码,并分析时间与空间复杂度。最后总结核心思路与关键技巧,强调题目对掌握链表操作的基础作用,同时预告后续 “两两交换链表中的节点” 题目解析。

Q741_147的博客 1113

算法5: LeetCode_单链表_两数相加(力扣2题)

力扣原题__两数相加

街头小瘪三的专栏 159

【数据结构与算法 | 灵神题单 | 合并链表篇】力扣2, 21, 445, 2816

链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。新链表是通过拼接给定的两个链表的所有节点组成的。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。你可以假设除了数字 0 之外,这两个数字都不会以零开头。的链表,表示两个非负的整数。请你将两个数相加,并以相同形式返回一个表示和的链表。反转链表,让数字高位变成低位,然后低位开始相加。的方式存储的,并且每个节点只能存储。将两个升序链表合并为一个新的。看注释,题目也比较简单。

2301_80912559的博客 1045
上一篇: LeetCode 1 两数之和 |算法
下一篇: AOP是什么?为什么要使用AOP(转载)| Java
LLLLQZ
博客等级 码龄7年 308粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值