LeetCode 2. 两数相加

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

题目链接:2.两数相加

 题意:

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

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

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

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        int c = 0;
        ListNode *head = nullptr, *tail = nullptr;
        while(l1 || l2) {
            int n1 = (l1 == nullptr ? 0 : l1->val);  // 当前数为空默认为0
            int n2 = (l2 == nullptr ? 0 : l2->val);
           int sum = n1 + n2 + c;   // 两数之和 加上金威
            if(!head) {  // 初始化
                head = tail =  new ListNode(sum % 10);
            } else {
                tail->next = new ListNode(sum % 10);  // 生成tail的下一个节点
                tail = tail -> next;
            }
            c = sum / 10;  // 判断是否往前进一
            if(l1) {
                l1 = l1->next;
            }
            if(l2) {
                l2 = l2->next;
            }
        }
        if(c > 0) {
            tail->next = new ListNode(c);
        }
        return head;
    }
};

力扣算法题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 阅读详情

相关推荐

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

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

NJU phd 在读。 867

力扣(LeetCode):#2-两数相加

文章目录力扣(LeetCode):#2-两数相加题目描述:题解:方法:初等数学 力扣(LeetCode):#2-两数相加 题目描述: 题解: 方法:初等数学 Java /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution {

忘尘丶莫负的博客 284

LeetCode 2 - 两数相加

是一道经典链表操作问题,经常作为面试中基础题的变体被考察。掌握多种解法及其变体,并熟悉其核心思路和模板代码,可以快速备战相关链表或大数计算问题。给定两个非空链表,它们代表两个非负整数,每个节点保存一个数字,数字按(个位在链表头部),求两个数的和并返回一个新的链表,表示其逆序和。l1l2carrysum % 10carrymn如果链表存储的是整数的正常顺序(高位在前),如何求两数和?

互联网架构师笔记 1161

[Golang]力扣Leetcode - 2.两数相加

[Golang]力扣Leetcode - 2、两数相加

皮埃尔的博客 438

光纤接口类型与应用场景全解析

本文全面解析了光纤接口的类型与应用场景,详细介绍了SC、LC、FC和ST等主流光纤接口的特点及适用环境。从数据中心的高密度布线到工业环境的极端条件,提供了专业的接口选型指南和实战经验,帮助读者根据具体需求选择最合适的光纤接口方案。

weixin_29289821的博客 411

tcmalloc(高并发内存池)简化版讲解-项目

高清发不上去,私我发高清,项目完整代码@我。

2201_75352618的博客 910

力扣LeetCode2.两数相加及Python源码实现

本题为LeetCode题库中第2两数相加,难度中等,题目请参考这里。 比较绕的一道题,谈论区的python答案不多而且思路没有讲清楚,这里记录一下。 给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数...

Alex__Mahone的专栏 794

Labview程序框架介绍

当掌握LabVIEW基础知识并达到,理解单个小型模块程序会相对轻松。而若想进一步探索大型程序,就必然需要了解程序框架相关内容。LabVIEW常用的程序架构包括等。在多年工作中,我接触过的众多高级工程师所开发的大型程序,基本都基于这些架构搭建。接下来,将为大家详细介绍这些框架。

Misterlhw的博客 4619

力扣LeetCode第2题两数相加

力扣LeetCode第2题两数相加

weixin_44061444的博客 384

[ensp报错:USG6000V错误代码45解决方案]

[ensp报错:USG6000V:错误代码45解决] [ensp报错:USG6000V:错误代码45解决] 第一种处理方式: ensp的45错误帮助文档里的解决方法:(这里就不说了,上华为爸爸的图) ensp的45错误:如果你的45错误不是描述的那个,可能是ensp与virtualbox不兼容了。 错误描述:具体表现为在virtualbox里没有vfw_usg的条目,虚拟介质管理器里也没有相应的条目: 就是vfw_usg_vdi这个 这种情况下你把ensp卸载重装多少次都没用,原因在两个软件的兼容

weixin_45456536的博客 3万+

DCM、PLL以及DLL等概念及详情

介绍DLL、PLL以及DCM的概念,总结其模块构成、工作原理、相互之间的差异与各自优势。

CLL_caicai的博客 8337

力扣2. 两数相加

力扣2. 两数相加 https://leetcode-cn.com/problems/add-two-numbers/ 给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0开头。 示例:...

小麦China的博客 198

HTML5+CSS3+JS小实例:焦点图波浪切换动画特效

实例:焦点图波浪切换动画特效。字体图标库:Font Awesome。技术栈:HTML+CSS+JS。

艾恩小灰灰的博客 907

力扣leetcode题库练习(C++)—2.两数相加

力扣leetcode题库练习(C++)—2.两数相加题目描述示例分析代码及注释如下结果如下 题目描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 输入:(2 -> 4 ...

weixin_45682431的博客 856

SAP BW/4HANA 项目字段级数据血缘分析的方法与工具

利用SAP自带工具可以在一定程度上查看数据流和字段使用情况,但往往需要人工逐步深挖。适用于简单场景或验证单个字段的映射。借助SAP数据治理解决方案(如 Information Steward、Data Intelligence 等)能够自动整合元数据,提供图形化、跨系统的血缘分析,适合对数据 lineage 有严格要求的企业级项目。第三方工具则提供了灵活强大的功能,如自动文档、生成功能丰富的报告,对于复杂环境下的血缘分析和影响分析非常有帮助。自行开发SQL/CDS脚本。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 470

2026年OPPO嵌入式岗位面试题带详细答案

本文总结了OPPO嵌入式岗位面试的核心考点,涵盖硬件驱动、系统启动、Linux内核开发等7大模块共34道典型题目。重点解析了SPI通信协议、中断处理、U-Boot启动流程、Linux驱动开发等关键技术,突出硬件调试与工程实践能力考核。题目设置贴合实际岗位需求,适合校招与社招驱动开发岗位应聘者系统复习,帮助掌握嵌入式开发的核心知识与面试要点。

Open 489

Leetcode力扣2两数相加

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

Solaku7的博客 312

计算机控制技术及应用

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

【力扣LeetCode】2 两数相加(链表)

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

Jiewang的博客 306

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

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

Leetcode力扣——2. 两数相加

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

qq_52222102的博客 1708

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

在上面的代码中,我们使用了一个哑节点(dummy)来简化链表的创建过程,因为我们不需要在循环开始前就知道链表的长度。哑节点是一个特殊的节点,它不包含任何数据(或包含默认值,如0),但它的下一个节点是结果链表的第一个实际节点。在循环结束后,我们返回哑节点的下一个节点作为结果链表的头节点。想象一下,你有两个逆序的纸条,每个纸条上都写着一串数字,这些数字代表一个非负的整数,但是是从低位到高位排列的(也就是个位数在最前面,十位数在后面,依此类推)。方法来得到相加后的结果链表,最后打印了结果链表的内容。

it爱好者的学习之路 1138

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

每次将两个节点的值与进位值相加,计算当前节点的值和新的进位值。使用哑巴节点简化链表的构建过程,确保所有边界情况(如链表长度不一致和最后的进位)都被正确处理。​ 将链表反过来看:这道题思路是通过迭代的方式将两个链表表示的数字相加,并返回结果链表。通过迭代的方式遍历链表。​ 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。​ 请你将两个数相加,并以相同形式返回一个表示和的链表。的链表,表示两个非负的整数。它们每位数字都是按照。的方式存储的,并且每个节点只能存储。

q1111111da的博客 582

2. 两数相加【 力扣(LeetCode) 】

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

yyh520025的博客 580

力扣(leetcode 2)两数相加 python

题目 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-two-numbers 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开...

qq_41318002的博客 531

leetcode力扣 2 两数相加 链表

如果头节点不为零,则开辟空间给tail-next的值赋值为余数,并且tail指向tail->next,carry的值赋值为sum除10,遍历l1 l2两条链表。使两个链表不为空为循环条件,将变量n1 n2以两条链表头节点为值,进行求和sum,如果头节点为零,则开辟一个空间,尾部值使它是总和的余数,并将next域置空;1 将长度较短的链表在末尾补零使得两个连表长度相等,再一个一个元素对其相加(考虑进位)的链表,表示两个非负的整数。请你将两个数相加,并以相同形式返回一个表示和的链表。3 在较短的链表末尾补零。

CKROL的博客 223

2.力扣LeetCode_两数相加

该代码实现了两个逆序存储数字的链表相加。主要思路是:使用哑节点简化链表操作,同时遍历两个链表,逐位相加并处理进位。创建新节点存储个位结果,将十位作为进位。若最终仍有进位,则额外创建节点。使用尾插法构建结果链表,最后释放哑节点内存。时间复杂度O(max(m,n)),空间复杂度O(max(m,n)),其中m,n为两个链表的长度。

2401_82472941的博客 614

leetcode/力扣第2题 两数相加

链表(Linked List)是一种线性数据结构数组:一块连续的内存,所有元素挨着存放,访问时可以通过下标快速找到。链表:由一个个“节点”(Node)组成,每个节点分为两部分:数据(值)指针(指向下一个节点的地址)就像一串珠子,节点靠“线”(指针)串起来。

m0_49366142的博客 348
上一篇: LeetCode 21. 合并两个有序链表
下一篇: 我的疑问~
error0318
博客等级 码龄9年 57粉丝 515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值