leetcode 两数相加(链表)

【LeetCode】【力扣刷题】两数相加 单链表操作 报错 member access within null pointer of type 'struct ListNode' 两数相加 单链表操作 + leetcode的一个小bug 题目描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -&... 阅读详情

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.

Example:

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
第一次写的(代码比较啰嗦)

class Solution {
public:
	ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
		if (!l1 && !l2) return NULL;
		if (!l1) return l2;
		if (!l2) return l1;
		ListNode *p1 = l1;
		ListNode *p2 = l2;
		ListNode *res = new ListNode(-1);
		ListNode *tmp = res;
		int count = 0;
		int sum = 0;
		while (p1 && p2) {
			count += p1->val + p2->val;
			sum = count >= 10 ? count-10 : count;
			count /= 10;
			tmp->next = new ListNode(sum);
			tmp = tmp->next;
			p1 = p1->next;
			p2 = p2->next;
		}
        if(!p1 && !p2 && count) tmp->next = new ListNode(1);
		if (p1) {
			tmp->next = p1;
			ListNode *ppre = p1;
			while (p1 && count) {
				count += p1->val;
				p1->val = count >= 10 ? count-10 : count;
				count /= 10;	
				ppre = p1;
				p1 = p1->next;
			}
			if (count) ppre->next = new ListNode(1);
		}
		if (p2) {
			tmp->next = p2;
			ListNode *ppre = p2;
			while (p2 && count) {
				count += p2->val;
				p2->val = count >= 10 ? count - 10 : count;
				count /= 10;
				ppre = p2;
				p2 = p2->next;
			}
			if (count) ppre->next = new ListNode(1);
		}
        
		return res->next;
	}
};

参考别人的简洁代码:

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode *result = new ListNode(0);
        ListNode *tmp = result;
        int sum = 0;
        while(l1 || l2){      
            if(l1){
                sum += l1->val;
                l1 = l1->next;
            }
            if(l2){
                sum += l2->val;
                l2 = l2->next;
            }
            tmp->next = new ListNode(sum%10);
            sum /= 10;
            tmp = tmp->next;
        }
        if(sum)
            tmp->next = new ListNode(1);
        return result->next;
    }
};
LeetCode 链表两数相加 JavaScript 实现 LeetCode 是一个广受欢迎的在线编程实践平台,它为程序员提供了大量与算法和数据结构相关的习题,以及测试和提升编程技能的机会。JavaScript 作为其支持的众多编程语言之一,经常被用于解决各种类型的问题。链表是一种常见的基础数据结构,由一系列节点组成,每个节点包含数据部分以及一个或多个指针,这些指针指向下一个节点的位置。在链表中,各个节点在物理内存上不一定连续存储,这与数组等其他数据结构相比是一个显著的区别。链表的特点如下:动态大小。 阅读详情

相关推荐

JavaScript链表实现LeetCode“两数相加”

LeetCode是IT行业及计算机相关专业技术人员面试准备过程中不可或缺的在线编程和技能测试平台。它不仅提供了一个庞大且多样化的题库,覆盖了从简单到高级不同难度等级的题目,同时也允许用户在规定时间内提交代码并获得即时反馈。对于寻求提升编程技能、准备技术面试,或是想了解自己在编程方面的真实水平的开发者来说,LeetCode是一个极为有效的学习工具。接下来的章节将详细介绍如何利用LeetCode提升编程能力,并以具体问题为例,展示在LeetCode上进行算法练习的流程。

weixin_30789053的博客 632

LeetCode-链表-两数相加

第一次写的时候,想要把两个逆序转变成整数然后再逆序写个新链表,写一半才发现题设里链表里节点数要在[1,100]间,数据太大表示不了,于是换了思路。给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。虽然最后carry开辟新空间,但是被新的数值“覆盖”,tail-next另有指向。此时需要判断carry是否大于1,如果大于,开辟新空间单独存储carry。请你将两个数相加,并以相同形式返回一个表示和的链表。

tokosuki的博客 558

用Spirent Test Center测试交换机Head of Line(HOL)Blocking

测试目的:设备执行拥塞控制,使非阻塞端口不受阻塞端口影响 预设条件:在RFC2889里按以下步骤设置,端口1和端口3同时向端口4发送数据包,端口1向端口2发送数据包 测试步骤:运行设置好的RFC2889 测试结果:所有frame size都显示没有Head of Line(HOL),即非阻塞端口不受阻塞端口所影响 ...

Yuna_的博客 1357

leecode_python中档题:2.两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self

winnerziqi的博客 614

Visual SLAM算法笔记

最近在学习SLAM算法,这里作为阅读笔记记录和总结一下。对经典的单目SLAM/VO算法做了摘要和总结,比如Nister VO、MonoSLAM、PTAM、ORB-SLAM、LSD-SLAM、SVO、DSO等,对几个单目和IMU的融合算法也做了简单总结,比如MSCKF、OKVIS、IMU-Preintegration等。

MulinB的技术博客 3万+

CVPR2023新作HAT实战:5分钟搞定图像超分辨率重建(附代码)

本文介绍了CVPR2023新作HAT模型在图像超分辨率重建中的实战应用。HAT通过创新的混合注意力机制,显著提升了图像重建质量,能激活更多有效像素并减少伪影。文章提供了从环境配置到模型部署的完整指南,帮助开发者在5分钟内快速实现图像超分辨率重建,并附有代码示例和性能优化技巧。

weixin_29062613的博客 237

【Leetcode】链表中两数之和(模拟加法器)(击败100%)

2.链表结束后另一个链表还有数(且此时还在进位,不能直接拼接链表)你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。3.最后去除多余的0。

weixin_51159944的博客 424

Ta-Lib源码解析(三):蜡烛图指标 (Candlestick Indicator) #(附Python重构代码和示意图)(补充中)

蜡烛图指标为识别K线形态的指标,笔者认为重点在于定义方式所提供的思路,背后的投资逻辑可以借鉴但不建议直接参考文档的翻译内容和源码逻辑存在不一致的现象,笔者分别列出中文百科中的定义和源码实际逻辑,供大家参考技术分析理论中的一些模糊词,ta-lib中给出了精确的定义源码

量化就是探索生活 3254

[LeetCode]2. 两数相加

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,

张小猪的家 1034

Android SELinux——neverallow问题处理(十六)

遇到 neverallow 规则问题,千万别急着去注释/剔除里面原有的规则(原生的尽量别动)。增加 allow 规则是常见的解决办法,但是随着 android 版本的升级,系统对 SELinux 的管控越来越严,增加了大量的 neverallow。一般情况下,向默认标签授予权限的做法是错误的,其中许多权限都是 neverallow 规则所不允许的。按照上面方法去添加 SELinux 可能会违反了 neverallow 规则,编译时候会报 neverallow 相关的错误。

小旭的专栏 2671

把 SAP GUI 做成可维护的应用:Module Pool 基础与 Table Control 深入实战

SAP Module Pool 与 Table Control 开发要点 摘要:Module Pool 作为 SAP GUI 交互的核心技术,由程序、屏幕(Dynpro)和流逻辑(Flow Logic)组成,通过 PBO/PAI 事件驱动数据流。Table Control 是其中处理多行数据的核心控件,其开发关键在于: 正确理解 PBO/PAI 数据流机制 掌握 CXTAB_CONTROL 结构的关键属性(LINES、TOP_LINE 等) 合理设置列控制属性(CXTAB_COLUMN) 采用 LOOP W

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

【leetcode系列】02.05-链表求和

两个链表求和

tmax52HZ的博客 379

资源分享·病毒样本下载资源分享

一、微步云沙箱 微步在线云沙箱https://s.threatbook.cn/ 使用病毒sha256即可寻找病毒样本;该站点也可上传可疑文件/可疑URL地址到沙箱中,进行分析 。 以永恒之蓝为例,样本sha256是:ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa 下载样本或流量监控,需要消耗积分: 二、AnyRun Interactive Online Malware Analysis Sandbox.

不忘初心,护天下安全! 2万+

【链表】LeetCode:2.两数相加

🔍🌷前言:数字可以在整形里面存,也可以在以字符串的形式存,也可以以链表的方式存,下面就看看链表存的两个数相加。喜欢的铁子可以点点关注,祝大家天天开心!

路虽远,行则将至!事虽难,做则必成! 4991

13、超声断层乳腺图像融合算法:乳腺癌诊断新突破

本文介绍了一种新型超声断层乳腺图像融合算法,通过结合超声透射(UTTc、UTTα)和反射断层图像(URT),实现对乳腺组织的多参数自动可视化。该算法能有效区分良性与恶性肿瘤,具有高准确性、无辐射、低成本等优势,适用于大规模乳腺癌早期筛查。初步临床测试验证了其可行性,未来有望成为乳腺癌诊断的新标准。

9q8w7e6r5的博客 154

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

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

Jiewang的博客 306

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【反转链表】力扣 445. 两数相加 II

【代码】【反转链表】力扣 2. 两数相加。

J_pluto的博客 500

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

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

m0_58354370的博客 906

LeetCode 2. 两数相加:链表操作

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

AI天才研究院 9234

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

数据结构之单链表-优快云博客or带头双向循环单链表-优快云博客

black_bear_white的博客 618

LEETCODE的第二题——两数相加(链表)

本文主要用于记录刷力扣的题解,因为自己算法太菜,所以想通过深度学习力扣的每一道题目的原理来提高自己。下面内容为自己学习时的记录,如有错误,欢迎指正🍭。

everything is possible,anything is OK. 732

Leetcode的链表两数相加

关于Leetcode链表两数相加的问题 做到这一道题,想到了前一道题的递归想法,先转载下leetcode的题解 [leetcode题目链接](https://leetcode-cn.com/problems/add-two-numbers-ii/) void addLinkList(struct ListNode* l1, struct ListNode* l2,int *cout) { if(l1==NULL||l2==NULL) return;

qq_45692403的博客 159

leetcode两数相加(c语言链表

leetcode两数相加(c语言链表 struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){ int x, y, num,flag=0;//flag是进位的值 struct ListNode *p = l1, *q = l2; struct ListNode *cur = (stru...

qq_43922013的博客 500

力扣用链表实现两数相加

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

dayday学习的博客 738

LeetCode Hot100刷题——两数相加(链表)

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

2301_77021913的博客 1086

【Leetcode:2. 两数相加 + 链表】

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

Coder_ljw的博客 1047
上一篇: leetcode 合并两个有序链表
下一篇: Linux系统分析实验(一):时间片轮转多道程序内核
Terminator1937
博客等级 码龄12年 5粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值