leedcode 2. Add Two Numbers

LeetCode题解-两数相加python实现 LeetCode题解-两数相加本地编译器python实现,链表(完整的本地代码,包括输入,输出) 阅读详情

题目描述
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 return it as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8

题目的意思就是将两个数相加,而这两个数的每一位是存在链表的每一个元素中的,从低位到高位。因此,思路是从链表的头部开始,遍历两个链表,注意要分别处理进位以及这一位的结果。另外还要注意链表的长度不一致的情况。
以下是c++实现的代码:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode* p1 = l1;
        ListNode* p2 = l2;
        int plus = 0;
        int value1 = 0;
        int value2 = 0;


        ListNode* result=NULL;
        ListNode* temp = new ListNode(0);
        //只要两个链表有一个不为空,就要继续遍历
        while ((p1 != NULL||p2 != NULL)) {
            if (p1 != NULL) {
                value1 = p1->val;
                p1 = p1->next;
            }
            else {
                value1 = 0;
            }

            if (p2 != NULL) {
                value2 = p2->val;
                p2 = p2->next;
            }
            else {
                value2 = 0;
            }
                    temp->next=new ListNode( (value1 + value2 + plus) % 10);
                    if (result == NULL) {
                        result = temp->next;
                    }
                    temp = temp->next;
                    //进位
            plus = (value1 + value2 + plus) / 10;

        }
        //处理最后的进位
        if (plus != 0) {
            temp->next = new ListNode(plus);
        }
        return result;

    }
};

写出来之后发现也没什么难的。但是几个月没怎么打代码,还是会生疏很多的。希望有意识的加强自己的编程能力。

实现过程中遇到的一个坑就是没有熟悉链表的建立过程。以下的代码,可能一下子看不出什么异常,实际上这样链表从第一个元素开始就没有链接起来。head只能得到只有第一个元素的链表。

int main() {
    ListNode *temp = NULL;
    ListNode *head = NULL;
    int n = 3;
    while (n--) {
        temp = new ListNode(2);

        if (head == NULL) {
        //注意这里因为temp->next==NULL,所以head->next==NULL,和后面的链表断开了
            head = temp;
        }
        //赋值后,temp==NULL,
        temp = temp->next;
    }

    while (head != NULL) {
        cout << head->val << endl;
        head = head->next;
    }
    system("pause");
    return 0;
}
Leetcode 《2. 两数相加》 之JS实现 准备面试,临时抱佛脚地开始刷leetcode,顺便练习一下javascript,决定把过程放博客记录一下,主要是总结比较个人的问题,大家可以不看。 题目《2. 两数相加》 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了... 阅读详情

相关推荐

【小宁学习日记6 PCB】电路原理图

本文系统讲解了电子硬件设计中原理图的阅读与绘制技巧。首先剖析原理图的四大核心要素(元件符号、连接线、结点、注释),强调注释对可读性的重要性。然后提出三步读懂法:查看图纸信息、分模块分析、结合芯片手册验证,并列举5个典型芯片案例(CH224K、CH343P等)进行实战解析。最后给出6条绘制规范:模块化布局、详细标注、规范命名、信号流布局、符号封装匹配、版本管理。文章指出原理图是电子设计的"地基",掌握规范阅读与绘制方法能大幅提升设计效率,避免常见错误。新手应从开源项目分析和简单电路绘制入手

qq_74376834的博客 2351

[Leetcode] Add Two Numbers Python实现 详细讲解

本题是使得两个链表相加,每个链表中值均为0~9,对于两个链表对应的值相加值sum若大于9,则为sum%10,并在指向的下一对节点的和sum上加1。 做题思路: 判断两链表是否有空链表,若有,直接返回另一个链表。若均不为空,则对应相加即可。 语法细节: 定义节点。使用:类+构造方法,构造方法的参数要有节点的数值大小、对下一个节点的指针等。若 l1 表示一个链表,则实质上 l1 表示头

weixin_37510517的博客 2386

SpyGlass Lint脚本实战:如何用TCL自动化RTL代码检查(附完整配置模板)

本文详细介绍了如何利用TCL脚本实现SpyGlass Lint工具的自动化RTL代码检查。通过构建模块化、工程化的脚本框架,文章提供了从环境搭建、核心配置、规则定制到豁免管理的完整实战指南,并附有可复用的配置模板,旨在帮助IC设计工程师构建高效、一致的代码质量检查流水线。

weixin_29204205的博客 134

LeetCode算法题——两数相加(python)

两数相加:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt; 4) 输出:7 -&gt; 0 -&gt; 8 原因:342 + 465 = 807 答案:# Definition for s...

u011444756的博客 8108

AI产品经理必备:Agent评测维度、指标与工程化落地指南

随着大模型从单轮问答走向复杂的Agent应用,如何科学地评测一个Agent是否真正“办成了事”,成为AI产品经理必须掌握的核心能力。与传统大模型评测关注回答质量不同,Agent评测需要综合评估任务规划、工具调用、多轮对话一致性以及失败自愈等行为。任务完成率与工具调用成功率是最关键的两个量化指标,同时还需关注延迟与Token成本等工程约束。在实际落地中,评测集的设计要覆盖业务主流程与边界场景,并通过批量回归测试与版本对比,为产品选型、算法迭代和上线决策提供数据支持。本文系统拆解了Agent评测的完整流程,帮助

weixin_29057163的博客 340

coreldraw sp2精简版 x4_CorelDRAW X4下载-CorelDRAW X4 SP2 精简版_Win10镜像官网

CorelDRAW X4 SP2是一个专业图形设计软件,专用于矢量图形编辑与排版,借助其丰富的内容和专业图形设计、照片编辑和网站设计软件,您将能够随心所欲地表达自己的风格与创意,轻松创作徽标标志、广告标牌、车身贴和传单、模型绘制、插图描画、排版及分色输出等。CorelDRAW X4 SP2软件特色CorelDraw X4 相比两年前的 CorelDraw X3 加入了大量新特性,总计有50项以上,...

weixin_30346025的博客 8885

leedcode做题总结,题目Two Sum2011-03-13

这是leedcode里最老的一道题,知道两数的和然后c

sdadssa1的专栏 1053

华为OD机试真题2025双机位C卷 Java&Go 实现【卡牌游戏】

小明正在尝试一种新的牌游戏。游戏规则只如下:首先,小明拿到一张写有数字m的牌。 然后,他会拿到另外n张牌,上面分别写有不同的数字,牌排成一排。小明的目标是从这排牌中找到一串连续的牌,这些牌上数字的总和可以被 m整除。你的任务是判断小明是否可以完成这个目标。

MISAYAONE的博客 392

LeedCode Add Two Numbers

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

追求卓越583的博客 923

《FreeRTOS 入门与实战》第20章:移植到 RISC-V 平台

处理器上下文保存/恢复机制中断处理与任务切换的协同时钟源配置(通常使用 Machine Timer)平台特定的汇编代码实现// 典型RISC-V移植文件结构FreeRTOS/├── Source/portable/[编译器]/RISC-V/│ ├── port.c // 关键移植接口│ ├── portASM.s // 汇编级处理│ └── portmacro.h // 架构宏定义。

2301_79143213的博客 448

YOLOv8改进策略【卷积层】| GnConv:一种通过门控卷积和递归设计来实现高效、可扩展、平移等变的高阶空间交互操作

HorNet: 利用递归门控卷积实现高效高阶空间交互GnConv(Recursive Gated Convolution,递归门控卷积)

Limiiiing的博客 323

LeedCode 之 Add Two Numbers

题目链接:Add Two Numbers 给了两个非空的链表存储两个整数,每个链表节点代表一位数字,并以相反的顺序存储。 Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8 即表示:432+465 = 807定义单链表: //Definition for singly-linked list. public class

JSJWR的博客 475

【RT-DETR涨点改进】全网独家创新、细节涨点改进篇 | ICML 2024 | RT-DETR引入ICB交互式卷积模块和ASB自适应频谱模块,助力目标检测、异常检测有效涨点、含多种创新改进点

RT-DETR目标检测模型通过引入ICB和ASB模块实现性能提升。ICB模块采用多尺度卷积交互,有效捕获局部和长程依赖特征;ASB模块通过自适应频域滤波优化特征表示,降低噪声干扰。两者结合使模型在复杂场景中表现更优,显著提升检测精度和鲁棒性。文章详细介绍了模块原理、代码实现及配置方法,并提供了8种改进版本的YAML配置文件,适用于不同网络结构。这些创新改进为RT-DETR模型提供了高效涨点方案,特别适合复杂背景和高噪声环境下的目标检测任务。

Ai缝合怪、助力小伙伴高效发论文 211

LeetCode | Add Two Numbers

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

Allan的专栏 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

leedcode解析—Python3—Add Two Numbers—medium

题目: 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 contains a single digit. Add the two numbers and return the sum as a linked list. You may assume the two nu

weiwei_wan的博客 339

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

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

[leedcode 02] Add Two Numbers

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a link...

weixin_30588827的博客 76

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LeetCode Add Two Numbers

题意:链表加法 代码如下: class Solution { ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode cur1 = l1, cur2 = l2; int carry = 0; ListNode phead = null, ptail = null;

多看多听多总结 365

Add Two Numbers

今天开始刷LeedCode了. 发现智商不够用了.有些解题方法是Goole来的... 答题语言都是c语言,顺便也是巩固了一下数据结构 原题链接: 点击打开链接 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }

IMISSHOT的博客 231

LeetCode第四题,Add Two Numbers

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

[&] () {} 1811

Leet Code 力扣 - - 最短最优雅python解法带解析汇总

Leet Code 刷题笔记 记录一下刷过的有意义和代表性的题 动态规划 Unique Paths 题目可以转换为排列组合问题,解是C(min(m,n), m+n),从m+n个中选出m个下移或n个右移。 用DP做很快,以后算 C(a, b) 都可以用算这题的DP法代替 ...

Knife丶小刀博客 4891

【leetcode算法面试】leetcode题目4-数组

题号 题目 说明 1 Two Sum 两数之和 暴利 / map查找 9 Palindrome Number 验证回文数字 11 Container With Most Water装最多水的容器 26 Remove Duplicates from Sorted Array 有序数组中去除重复项 ...

zhonglinzhang 5807

LeetCode第二题两数相加(Python)

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

qq_21407487的博客 627

leetcode 2.两数相加 (python语言)

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -&amp;gt; 4 -&amp;gt; 3) + (5 -&amp;gt; 6 -&amp;gt; 4) 输出:7 -&amp;gt; 0 -&amp;gt; 8 原因:342 + 465 = 807 # -*- coding: U...

zhangyu4863的博客 8293

每日leetcode:两数相加(python)

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

KevinLML的博客 2872

LeetCode:2. 两数相加(python)

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

wk的博客 574

leetcode-两数相加-python

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

夜夜夜夜的博客 471
上一篇: unity3d 入门——实现井字棋
下一篇: leedcode 14. Longest Common Prefix
wenkun97
博客等级 码龄10年 15粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值