【每日一题】2. 两数相加

news/2024/11/29 20:29:41/

【每日一题】2. 两数相加

  • 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,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]

提示:

每个链表中的节点数在范围 [1, 100] 内
0 <= Node.val <= 9
题目数据保证列表表示的数字不含前导零

解题思路

思路:竖式加法。分别使用指针p1、p2、l指向链表1、链表2、结果链表当前元素,使用sum表示当前和,使用add表示进位,使用cur表示当前位。首先是两个指针均不为空时的处理,接着是两个指针两者之一为空时的处理,最后要注意残留add时的处理。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {//全逆序和全正序本质上是一致的ListNode* p1=l1;ListNode* p2=l2;//结果链表头结点ListNode* L=new ListNode();//结果链表当前结点ListNode* r=L;int cur;int sum;int add=0;//两者不为空while(p1&&p2){sum=p1->val+p2->val+add;cur=sum%10;add=sum/10;ListNode* p=new ListNode(cur);r->next=p;r=r->next;p1=p1->next;p2=p2->next;}while(p1){sum=p1->val+add;cur=sum%10;add=sum/10;ListNode* p=new ListNode(cur);r->next=p;r=r->next;p1=p1->next;            }while(p2){sum=p2->val+add;cur=sum%10;add=sum/10;ListNode* p=new ListNode(cur);r->next=p;r=r->next;p2=p2->next;            }//注意这个addif(add){ListNode* p=new ListNode(add);r->next=p;r=r->next;}return L->next;}
};

总结:加数和被加数全逆序以及和全逆序本质上是一样的,经典竖式加法模拟。


http://www.ppmy.cn/news/691876.html

相关文章

autocad锐龙英特尔_到底差多少?十代标压酷睿对比锐龙4000H

在今年&#xff0c;拯救者第一次推出了AMD平台的机型&#xff0c;相信有许多小伙伴对于其性能究竟与Intel有多少区别、对AMD处理器在一些专业软件中的表现都有一些疑问。于是我们在近期做了一项大工程&#xff0c;对拯救者Y7000/R7000 2020做了一次测试&#xff0c;从很多角度对…

python mkl 锐龙 cpu_锐龙4800h笔记本安装Ubuntu20.04.1填坑实录

2020/12/08更新&#xff1a; 联想拯救者r7000:4800h1650ti版本同样适用本教程&#xff0c;而且可以省略nvme_core.default_ps_max_latency_us5500的设置(可能是某些特定固态硬盘型号才需要这样设置&#xff0c;目前可知的是西部数据SN500、华硕天选自带的KINGSTON OM8PCP3512F-…

c语言锐龙,AMD官方:锐龙5000抗热可以达到95°C 没问题!

对于现在的CPU而言&#xff0c;温度设定是一个至关重要的影响因素。在CPU制程工艺和架构设计水平差不多的情况下&#xff0c;谁的温度墙设定的更高&#xff0c;性能的发挥也会更好&#xff0c;因为如果一旦降频再强的性能也发挥不出来。而在这一点上&#xff0c;AMD锐龙5000系列…

锐龙cpu能装linux吗,不知道这个,别说你会用锐龙处理器!干货经验分享!

原标题:不知道这个,别说你会用锐龙处理器!干货经验分享! 视频:风力发电原理 AMD锐龙处理器以出色的性价比受到玩家青睐,不过也有玩家装机之后抱怨为什么自己的锐龙处理器跑分总是比别人低那么一点点,工作温度也比别人高,怀疑是AMD平台的问题…… 其实现在AM4主板的BIOS…

linux版和锐龙版区别,华为MateBook D 14锐龙版Linux版更便宜

中关村在线消息&#xff1a;在昨天的MatePad及全场景新品发布会上&#xff0c;华为发布了新的笔记本产品MateBook D 14和MateBook D 15&#xff0c;当时公布的所有机型均为预装Windows 10的版本&#xff0c;现在预装Linux系统的版本也已经上架&#xff0c;相较而言更便宜一些。…

锐龙用vm搭建linux,玩vmware的话主机千万别用AMD的芯片

1)安装GSX后无法安装虚拟机系统 前段时间装vmware时就发现安装好GSX后,在vmwae里安装linux as时光盘会自动退出,多次检查原因未果,搞得头都大了,经请教vmware骨灰级大牛yaoyj,他建议我检查vmware安装日志并去vmware网站查找原因,经检查发现是vmware对AMD athon支持不够,…

锐龙java开发_荣耀锐龙版笔记本福利拉满 错过再等一年

可以说荣耀Magicbook从初代开始就以高品质、高性价比著称。今年上市的PRO版本更可谓是诚意之作&#xff0c;不仅加入全面屏设计&#xff0c;还在不同需求上推出多款配置让大家来选择&#xff0c;荣耀锐龙版笔记本更是成为了热销产品。最近的荣耀亲选上的活动中&#xff0c;荣耀…

Linux--打印内容或者插入内容:echo

语法&#xff1a; echo 内容 作用&#xff1a;打印内容到显示器echo 内容 > 不存在的文件 作用&#xff1a;文件创建&#xff0c;并将内容插入新创建的文件中echo 内容 > 存在的文件 作用&#xff1a;覆盖文件原有的内容 echo 内容 >> 存在的文件 作用&#xff1a…