LeetCode高频算法面试题 - 002 - 两数相加

限时码!20+主流AI编程工具免费用 购周边赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

 大家好,我是漫步coding, 最近在整理2022年LeetCode高频算法面试题 ,感觉好的, 可以点赞、收藏哈。同时有补充的也欢迎大家给出反馈。本文首发于公众号: 漫步coding

题目来源于 LeetCode 上第 2 号问题:两数相加。题目难度为 Medium,目前通过率为 33.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
题目数据保证列表表示的数字不含前导零

题目解析

设立一个表示进位的变量carried,建立一个新链表,把输入的两个链表从头往后同时处理,每两个相加,将结果加上carried后的值作为一个新节点到新链表后面。

代码实现

tips: 以下代码是使用Go代码实现的不同解法, 文章最后可以看C++、C、Java、Python实现

1、循环遍历, 进行求和

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
    var carry int
    resultList := &ListNode{}
    current := resultList

    for{
        if l1 == nil && l2 == nil && carry == 0{
            break
        }

        if l1 != nil{
            carry += (*l1).Val
            
算法练习:两数相加(中等难度) 两数相加 题目链接: ​ https://leetcode-cn.com/problems/add-two-numbers/ 题干内容: 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。 请你将两个数相加,并以相同形式返回一个表示的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例一: 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. 示例二: 输 阅读详情

相关推荐

C++ unordered_set实战:如何用哈希表解决LeetCode高频面试题

本文深入解析C++ STL中的unordered_set容器,探讨其基于哈希表的底层原理与O(1)平均时间复杂度的核心优势。通过剖析两数变体、最长连续序列等LeetCode高频面试题的实战代码,展示如何利用unordered_set实现高效的元素查找、去重与存在性检查,助力开发者优化算法性能,从容应对技术面试。

weixin_29305313的博客 456

[链表与树]两数相加

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

邓乐来Jacob的博客 268

Python算法实战手册:面向工程落地的可运行工具箱

算法是解决实际问题的数学工具,其核心在于问题抽象、计算原理与工程实现的统一。Python凭借丰富生态易用性,成为算法工程化首选语言,但单纯复现教科书代码常导致性能瓶颈、鲁棒性缺失与生产环境失效。本文聚焦Python算法的工业级实践路径:从真实业务场景(如模糊匹配、二分图调度、增量PID控制)出发,解析如何通过分层封装、输入校验、内存优化与安全熔断等手段,将理论算法转化为稳定、可测、可维护的生产就绪模块。涵盖排序策略自适应选择、Hopcroft-Karp工业改造、纯Python高性能图计算等关键技术点,助力

weixin_29973493的博客 228

Leetcode两数相加

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

lyhellogod的博客 440

算法---两数相加(乐乐独记)

1、题意描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 2、解题思路 1、首先我们需要考虑到两个链表的长度问题,那么很显然的就有三种情况 l1的长度等于l2的长度。 l1的长度大于l2的长度。 l1的长度小于l2的长度。 2、由于链表存储的数据 ...

qq_41931364的博客 308

leetcode高频面试题

文章目录一. 写在开头二. Lnho大神总结的高频题三. 频度五题解1. Two Sum \[Difficulty: Easy\]15. 3Sum \[Difficulty: Medium20. Valid Parentheses [Difficulty: Easy]56. Merge Intervals [Difficulty: Medium]57. Insert Interval [Diffi...

Bean771606540的博客 1262

002 差分算法:高效处理区间更新,一文掌握核心技巧

差分算法是处理多次区间增减操作的神器,能将区间修改的复杂度从O(n)优化至O(1),在航班座位统计、拼车问题、环形数组等场景中表现卓越。本文通过LeetCode经典题目深入剖析差分算法的核心原理,并总结实战模板与技巧,助你轻松应对高频面试题!差分数组diff是原数组numsdiffinumsi−numsi−1i≥1diffinumsi−numsi−1i≥1通过差分数组,可以将区间增减操作转换为对两个端点的修改,最后通过。

weixin_37253733的博客 1749

程序员进大厂+找女朋友攻略

作为一名程序员,你肯定想过:编程最本质的知识是什么?很多人都会说是算法与数据结构。为什么是算法算法如何帮助程序员升级打怪?进大厂、升职薪、找到女朋友........

程序员吴师兄的博客 1015

终极LeetCode解题宝典:gh_mirrors/leetcode21/leetcode项目中的C++/Java/Python多语言实现 [特殊字符]

你是否正在为LeetCode算法题而苦恼?想要提升编程技能却不知从何入手?今天我要为你介绍一个强大的开源项目——gh_mirrors/leetcode21/leetcode,这是一个包含229个LeetCode问题解决方案的完整宝库!这个项目提供了C++、Java、Python、SQLShell Script五种语言的实现,是学习算法数据结构的最佳资源。 ## 为什么选择这个LeetCode

gitblog_00475的博客 587

leetcode】剑指Offer专项突击版含注释 Java版本(一)

以下文章主要是方便自我学习总结 感兴趣的也可一键三连互相学习 大部分算法题都是刷过很多次,知识点也比较重复,特殊情况下会重点讲解下代码思路 对应另一套算法题: 字节校园精选 66 道高频经典笔面试题(含多种思路)(上) 字节校园精选 66 道高频经典笔面试题(含多种思路)(下)

码农研究僧的博客 1569

从外包到阿里P7:我的社招进阶之路,只因掌握了这6个秘密

掌握社招程序员面试经验,轻松突破职业瓶颈。本文分享从外包逆袭阿里P7的6大核心方法,涵盖高频考点、系统设计、项目表达与谈薪技巧,适用于中高级程序员进阶。真实经历+可复制路径,值得收藏。

VarPerch的博客 767

小米测试开发笔试题型全解析与高效复习路线

软件测试是保障产品质量的核心环节,测试开发工程师不仅要有扎实的测试理论,还需具备工程编码能力。大厂笔试常以客观题、用例设计与编程题组合,覆盖Linux命令、SQL查询、计算机网络及基础算法。掌握边界值分析、等价类划分等用例设计方法,结合字符串、数组等高频编程题训练,能显著提升答题效率与代码稳定性。这些技能在日志分析、自动化测试、数据校验等日常场景中尤为实用。本文以小米秋招测试开发笔试题为样本,拆解出题逻辑、考点权重与临场策略,帮你规划高效复习路线。

CSDN头条 562

测试开发岗秋招笔试全攻略:从编程题到用例设计的高分准备思路

测试开发是软件质量保障体系中的关键角色,它要求从业者同时具备代码实现能力与测试思维,理解系统原理并善于通过工程手段提升测试效率。其笔试考察逻辑与纯后端或纯功能测试不同,往往围绕编程实现、用例设计、计算机网络、操作系统、数据库等基础展开,并逐步融入AI测试与自动化工具链等前沿方向。面对这类覆盖面广、综合性强的笔试,关键在于建立从数据结构与算法到边界条件处理、从业务场景拆解到异常风险分析的系统性准备框架。本文从测开岗位筛选逻辑出发,梳理编程题、用例设计题、计算机基础及新兴AI测试等板块的考察重点,并结合真实备考

weixin_33895516的博客 526

测开校招笔试全拆解:从考点到能力模型与准备路线

测试开发工程师岗位校招笔试往往兼顾计算机基础、测试理论与工程实践,通过选择题、简答题编程题综合考察候选人的全栈素养。计算机网络中的TCP握手与状态码、操作系统中的进程线程与死锁、数据库中的SQL多表查询与索引优化,都是笔试的高频考点。这类题目不仅检验基础知识的扎实程度,更反映候选人在实际测试中定位问题、设计用例编写自动化脚本的能力。从登录功能到接口测试,从边界值分析到数据驱动,测试开发的核心在于构建可验证、可执行的测试方案。无论是应届求职还是转行入门,理解笔试题背后的能力模型,并围绕Linux、SQL、

weixin_34060299的博客 362

Python栈的三种实现:list、deque与LifoQueue实战指南

栈(Stack)是一种遵循后进先出(LIFO)原则的基础数据结构,广泛应用于函数调用、表达式求值、撤销操作图遍历等场景。其核心价值在于通过接口约束保障操作确定性与逻辑健壮性。在Python中,虽无原生stack类型,但可通过list、collections.dequequeue.LifoQueue三种方式实现——它们并非简单替代关系,而是分别面向单线程轻量场景、高频稳定操作多线程安全协作的不同工程需求。理解三者底层结构(动态数组/双向链表/带锁队列)、时间复杂度特征及典型陷阱(如list扩容抖动、de

weixin_30855099的博客 370

Confetti AI题库深度解析:面向AI求职与招聘的实战能力诊断体系

AI工程师能力评估正从知识记忆转向工程决策与业务建模。Confetti AI题库以‘临床有效性’为核心,将机器学习、数据科学与系统设计题目转化为可诊断、可归因、可演进的能力图谱。其底层融合数学直觉还原、工程防呆设计、架构分层权衡与职业黑话解码四层知识结构,依托Jupyter Notebook实践载体与Discord社区驱动机制,精准锚定真实面试场景与产业一线水位。该体系不仅服务于应届生求职冲刺与在职者能力跃迁,更成为招聘方高效初筛与人才画像的技术基础设施——当一道题能暴露Pipeline设计缺环或特征一致性

weixin_34392435的博客 495

2023奇安信Golang春招笔试卷复盘:并发、内存与网络考点解析

并发编程是后端开发的核心能力,尤其在处理高并发网络请求时,如何保证程序的正确性与性能至关重要。Golang通过goroutine轻量级调度与channel通信机制,简化了并发模型的实现,但其底层原理如GMP调度、context取消传播以及锁与原子操作的选择,往往是笔试面试中的难点。与此同时,内存管理也是区分开发者水平的关键,GC三色标记法、逃逸分析、sync.Pool复用等知识点,直接关系到服务在真实流量下的延迟表现。这些技术不仅广泛应用于互联网后端,更是安全产品如流量分析、态势感知系统的基石。针对这类高

weixin_34319817的博客 407

深信服测试开发笔试全解析:考点分布与实战备考指南

软件测试是保障产品质量的关键环节,测试开发工程师不仅需要掌握功能测试方法,还需具备自动化测试、接口测试与性能测试的综合能力。理解测试用例设计原理、熟悉pytest、Selenium等主流工具,能显著提升测试效率与可靠性。在技术岗位招聘中,这类技能常通过笔试面试进行考察,尤其像安全与云计算领域的头部企业,往往要求应聘者具备扎实的计算机基础与测试工程思维。本文围绕测试开发岗位的笔试准备,结合真实秋招经验,梳理了考点分布、题型拆解、备考路线及实战避坑指南,帮助求职者建立系统化的复习框架,从基础理论走向项目实践,

weixin_34218890的博客 309
上一篇: LeetCode高频算法面试题 - 001 - 两数之和
漫步coding
博客等级 码龄5年 17粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值