LeetCode 002:两数相加

LeetCode高频算法面试题 - 002 - 两数相加 大家好,我是漫步coding, 最近在整理2022年LeetCode高频算法面试题,感觉好的,可以点赞、收藏哈。同时有补充的也欢迎大家给出反馈。本文首发于公众号: 漫步coding 题目来源于 LeetCode 上第 2 号问题:两数相加。题目难度为 Medium,目前通过率为 33.9% 。 题目描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新... 阅读详情

题目:

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

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

分析

  • 两个输入的链表明确是非空的,那么输入值可以不用判空。
  • 链表是按照数字逆序存放的,这意味着第一个数字总是个位数,第二个总是十位数,位数不一致的情况会好处理很多。
  • 每一位上的数不可能大于10,所以两个链表对应位上的和不可能大于20。

实现代码

根据上面的分析我们就可以很快的实现如下代码:

public ListNode solution(ListNode l1, ListNode l2) {
    ListNode dummy = new ListNode(-1);
    ListNode cur = dummy;
    int carry = 0;
    while (l1 != null || l2 != null) {
        int d1 = l1 == null ? 0 : l1.val;
        int d2 = l2 == null ? 0 : l2.val;
        int sum = d1 + d2 + carry;
        carry = sum >= 10 ? 1 : 0;
        cur.next = new ListNode(sum % 10);
        cur = cur.next;
        if (l1 != null){
            l1 = l1.next;
        }
        if (l2 != null){
            l2 = l2.next;
        }
    }
    if (carry == 1){
        cur.next = new ListNode(1);
    }
    return dummy.next;
}

更多LeetCode文章:
https://github.com/ybjx/Leetcode

扫码关注:

头条号:微信公众号:

Deepseek:物理神经网络PINN入门教程 物理信息网络(Physics-Informed Neural Networks, PINN)是一种将物理定律(如偏微分方程、守恒定律等)嵌入神经网络训练过程的深度学习方法。其核心思想是通过神经网络同时拟合观测数据并满足物理约束,从而解决传统数值方法难以处理的高维、噪声数据或复杂边界条件问题。 阅读详情

相关推荐

不用加速器!Google Earth Pro登录失败自救手册:从服务器连接到地图加载的完整排错流程

本文详细解析了Google Earth Pro登录失败的常见问题及解决方案,包括服务器连接失败、地图加载异常等。通过基础排查、内置修复工具使用和高级配置调整,帮助用户无需加速器即可解决启动问题、黑屏和转圈圈等困扰,提升软件使用体验。

weixin_29227425的博客 485

LeetCode题解002:两数相加

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

dhsdh56756的专栏 205

模板匹配加速之金字塔分层搜索

图像金字塔是一种多分辨率图像表示方法,它通过一系列逐渐缩小或放大的图像来表示原始图像的不同尺度。高斯金字塔(Gaussian Pyramid):通过不断下采样(降采样)生成更小的图像。拉普拉斯金字塔(Laplacian Pyramid):通过高斯金字塔和差分操作生成一组残差图像。在模板匹配中,我们主要使用高斯金字塔来实现多尺度匹配。金字塔灰度模板匹配通过多尺度搜索策略,在保持较高准确率的同时显著提升匹配速度,尤其适用于:高分辨率图像处理实时检测系统移动端设备等资源受限场景。

weixin_44969144的博客 1732

Leetcode002:两数相加 (Python)

一、写在前面 之前写过的Leetcode笔记:点击查看 今天给大家分享的是LeetCode 002:两数之和,为面试而生,期待你的加入。 二、今日题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会...

简说Python的博客 780

解密 vn.py 源码:从事件驱动到模块化设计的实战解析

本文深入解析vn.py源码,重点剖析其事件驱动机制与模块化设计。通过事件引擎、处理器字典等核心组件分析,展示如何实现低耦合高内聚的交易系统架构,并结合实战案例说明模块化设计带来的开发效率提升。文章还详细解读了Gateway抽象层、核心数据结构及设计模式应用,为量化交易开发者提供源码级实践指南。

weixin_27427619的博客 250

Jaspersoft Studio安装与配置全攻略:从下载到首个报表生成

本文提供Jaspersoft Studio从下载、安装到创建首个报表的完整实战指南。详细介绍了如何获取安装包、配置工作空间,并通过可视化设计器创建报表模板、添加参数与字段,最终实现数据预览与PDF导出。帮助Java开发者快速掌握这一强大的开源报表工具,提升报表开发效率。

weixin_28826521的博客 704

力扣002:两数相加

最后为什么要判断是否存在再往后,因为不存在的none没有next,会报语法错误。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。应该是len(l1)而不是l1.len()的方式存储的,并且每个节点只能存储。

qq_51438689的博客 87

地瓜派RDK X5部署YOLOv11n避坑指南:手把手教你解决Softmax算子导致的性能暴跌问题

本文详细介绍了在地瓜派RDK X5开发板上部署YOLOv11n模型时遇到的性能问题及解决方案。通过强制BPU部署Softmax算子,成功将推理速度从7FPS提升至47FPS,并提供了完整的优化流程和技术细节,帮助开发者避免类似性能陷阱。

weixin_42629671的博客 269

LeetCode 002:两数相加

LeetCode

m0_64694079的博客 290

小米路由器R1D进阶玩法:MIXBOX工具箱安装与插件管理指南

本文详细介绍了为小米路由器R1D安装MIXBOX工具箱的完整指南。通过开启SSH、执行一键安装脚本,用户可以轻松解锁路由器的进阶功能,如安装离线下载、内网穿透等插件,从而将旧设备转变为强大的家庭网络服务中心。

weixin_29292431的博客 1114

群晖Web Station实战:从零搭建个人静态导航站

本文详细介绍了如何利用群晖NAS自带的Web Station套件,从零开始搭建个人静态导航站。通过安装Web Station、上传静态网站源码、配置网页服务与网络门户等步骤,无需代码基础即可实现内网访问。文章还分享了文件权限设置、个性化定制及常见问题排查等实用技巧,帮助用户高效管理个人常用网址,充分挖掘NAS的服务器潜能。

tea88的博客 1330

LeetCode002:两数相加 链表ListNode

给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 思路:将两个链表看成是相同长度的进行遍历,如果一个链表较短则在前面补 00,比如 987 + 23 = 987 + 023 = 1010,每一位计算的同时需要考虑上一位的进位问题,而当前位计算结束后同样需要更新进位值,如果两个链表全部遍历完毕后,进位值为1,则在新链表最前方添

46426906的博客 627

解决Jupyter Notebook中Plotly图表显示问题

摘要:在Jupyter Notebook中使用Plotly绘图时遇到图表无法显示的问题。通过分析发现Python 3.12版本与Jupyter存在兼容性问题。解决方案是将Python降级到3.11版本,重新创建虚拟环境后图表正常显示。这表明版本兼容性对数据可视化工具至关重要,环境配置检查是解决问题的关键步骤。该案例为遇到类似问题的开发者提供了参考方案。

m0_74337424的博客 125

leetcode算法每天一题002:两数相加(链表)

c++链表c++链表。

ResumeProject的博客 245

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LeetCode hot100:002 两数相加(链表):逆序存储数字的加法运算

本文介绍了两种解决链表逆序数字相加问题的方法。递归法采用分治思想,通过函数调用栈处理进位;迭代法通过循环逐位相加,实时处理进位。两种方法的时间复杂度均为O(max(m,n)),但迭代法的空间效率更高。关键点包括:链表从个位逆序存储,便于逐位相加;进位处理需考虑链表长度不同及最高位进位。虚拟头节点技巧可简化链表操作。迭代法因高效简洁,被推荐为通用解决方案。

m0_62396717的博客 1277

VB摄像头监控

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

LeetCode002之两数相加(相关话题:链表操作)

这是一道快手的常考题目,即使你答错了,再去看答案,也比直接看答案效果更好(有时候你还可能有恍然大悟的感觉)。

数据与算法架构提升之路专栏 424

摆烂学习 LeetCode——JAVA

小白入门借鉴学习

qq_51517771的博客 230

jsp两个数字相加_让我们一起啃算法----两数相加

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

weixin_31610297的博客 1099

Go 算法 leetcode 002 两数相加

Go 算法 leetcode 002 两数相加题目链接答案 题目 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 链接 leetcode 002 两数相加 答案 /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func addTwoNumbers(l1 *L

kucfire 207

两数相加——leetcode002

leetcode002——两数相加(链表,python) # -*- coding: utf-8 -*- """ Created on Wed May 22 09:25:47 2019 @author: Lenovo """ # Definition for singly-linked list. class ListNode(object): #定义链表类 def __init__...

chicken3wings的博客 168

LeetCode-002-两数相加

思路:直接相加,直到两个链表都是空,判断最后是否还有进位 代码: class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode head = new ListNode(l1.val + l2.val); ListNode cur = head; while(l1.next != null || l2.next != null){

HuangMuCheng的博客 119

【leetcode】002.两数相加

【leetcode】002.两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/add-two-numbers 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。比较容易漏掉的是最后的一次进位操作 解法二 代码优

Elaine_DWL的博客 224

野猪小李刷leecode-02两数相加

不学无术大龄小白一枚,leecode上的第二题两数相加,自己的实现思路,欢迎各位前辈和后起之秀指导讨论!函数实现(没按照leecode给出的格式编写,习惯性写了个多态就不改了)。在主函数调用方法,用leecode给出的数据测试。

stitch_626_的博客 152

腾讯精选练习(1/50) :两数相加(LeedCode 002)

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

iiVax的博客 192

LeetCode 002 两数相加

# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def addTwoNumbers(self, l1, l2): """ ...

weixin_41958153的博客 268

LeetCode刷题 | NO.002两数相加

原题: You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and re...

Shannon 338
下一篇: LeetCode 001:两数之和
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值