两数相加问题

news2024/7/30 10:13:53

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 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]

代码如下:

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode* pre=new ListNode(0);//定义一个头节点之前的节点,为预先节点,防止在遍历的过程中丢失头节点
        ListNode* cur=pre;//定义cur指针指向pre
        int carry=0;//进位
        while(l1!=nullptr||l2!=nullptr)
        {
            int x=l1==nullptr?0:l1->val;//当l1为0时,让l1补0,否则取l1的值
            int y=l2==nullptr?0:l2->val;//当l2为0时,让l2补0,否则取l2的值

            int sum=x+y+carry;//加上进位之后此时的和
            carry=sum/10;//获得进位
            sum=sum%10;//进位之后剩下的数字,余数
            cur->next=new ListNode(sum);//将余数存进新的链表里
            cur=cur->next;//循环新链表

            if(l1!=nullptr)
            {
                l1=l1->next;//循环l1链表
            }
            if(l2!=nullptr)
            {
                l2=l2->next;//循环l2链表
            }
        }
        if(carry==1)
        {
            cur->next=new ListNode(carry);//当l1和l2都遍历完成之后,此时进位为1,开辟一个新的节点存放进位
        }
        return pre->next;//返回pre的下一个节点为新链表的头节点

    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 进程虚拟地址空间与虚拟内存

Linux 进程虚拟地址空间与虚拟内存 本文主要介绍Linux进程虚拟地址空间和虚拟内存的概念,学习可用物理内存中的页帧与所有的进程虚拟地址空间中的页之间的关联: 逆向映射(reverse mapping) 技术有助于从虚拟内存页追踪到对应的物…

ASS字幕 中的阴影 如何去除,三秒解决

有些外挂的ass字幕,总是自带一层浓浓的 阴影,看着就很不舒服,如下截图 解决方法: 鼠标右键,用记事本打开ass字幕文件,然后搜索关键字 ScaledBorderAndShadow,将其后面的 yes 改为 no&#xff0…

JSP在线小说系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 在线小说系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用ja…

C. Insert Zero and Invert Prefix - 构造+思维

分析: 数组b的最后一个元素永远不可能使1,因为即使在最后一个位置操作,也只会把前n-1个元素反转,最后一个元素只能为0.然后可以发现只要a[i]0就可以直接输出0,当a[i]1时一连串的1只需要最后一个1的位置改变成1的字串长…

微信小程序基础语法

微信小程序 文章目录 微信小程序[toc]一、初识微信小程序1.什么是微信小程序2.小程序可以做什么3.小程序与普通网页开发的区别 二、开发准备1.注册小程序开发账号2.安装开发者工具3.登陆我们的开发者工具 三、小程序构成1.小程序的基本组成结构2.小程序的页面组成结构3.小程序组…

OSI(开放系统互连参考模型)知识点详细介绍!!

开放系统互连参考模型分七层,从低到高是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层 一.物理层(Physical Layer) 物理层位于 OSI/RM 参考模型的最底层,为数…

6.18、Java初级异常

1. 异常概述 1.1 什么是生活的异常 男主角小明每天开车上班,正常车程 1 小时。但是,可能会出现意外,出现意外,即为异常情况。我们会做相应的处理。如果不处理,到不了公司。 处理完了,就可以正常开车去公司…

浪涌保护器的标准和应用领域综合方案

浪涌保护器是一种用于防止电力系统或电子设备受到雷击或其他暂态过电压的损坏的装置。根据国家标准GB/T 18802.11-20201,低压电涌保护器 (SPD) 应符合IEC 61643-11:2011的性能要求和试验方法。浪涌保护器的产品参数包括:额定工作电压、最大连续工作电压、…

【kubernetes系列】kubernetes之kube-proxy的工作模式

概述 从kubernetes最早开始,kube-proxy到现在总共支持三种模式,在v1.8之前我们使用的是iptables 以及 userspace两种模式,iptables 模式从 v1.2 版本开始引入并作为kube-proxy 默认的操作模式。在kubernetes 1.8之后引入了ipvs模式&#xff…

!!!已解决: Linux操作系统登录,输入正确账号密码显示却显示:Sorry, that didn‘t work. Please try again.

!!!已解决: Linux操作系统登录,明明输入密码正确却显示:Sorry, that didn’t work. Please try again. 先给大家复现一下我的问题: 为什么出现这个问题??? …

知识梳理for CDGA/CDGP——第九章 ​文件和内容管理

第九章在CDGA分值占比较少,CDGP不考核,主要考点包括:定义、目标、原则、活动、工具、度量指标等基本概念、记住精心管理档案特点、GARP原则等。因此本章建议不需要花大量时间研究,熟悉历史真题,聚焦关键考点即可&#…

Leetcode-每日一题【1290. 二进制链表转整数】

题目 给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 示例 1: 输入:head [1,0,1]输出:5解释:二进制数 (101) 转化为…

没有BuildConfig

Android Gradle 插件8.0.0(2023年4月) 刚刚发现,新创建的一个Android项目,成功运行到手机上了,然后在代码中想使用一下BuildConfig这个类,发现没有,按以前的经验,项目刚创建时Build…

优雅码住!ChatGPT的五大开源替代方案

自去年11月发布以来,ChatGPT吸引了全球各行业人士的注意力和想象力。人们将它用于各种任务和应用程序,而且它有可能改变流行的应用程序并创建新的应用程序。 但ChatGPT也引发了微软和谷歌等科技巨头之间的人工智能竞赛,使得该行业在大型语言模…

Docker服务编排之Docker Compose的使用

Docker服务编排 概念:按照一定的业务规则批量的管理容器 微服务架构的应用系统中一般包含很多微服务,一个微服务中又包含很多的实例,每个微服务都要手动管理,维护的工作量很大。 拉去镜像,创建多个容器,分…

使用YOLOv5实现实时目标检测结果保存

本文将分享保存实时目标检测结果的方法,包括将目标信息逐帧保存到.txt文件中、逐帧输出检测结果图片、以及如何保存所有检测图片(包括视野中无目标的帧)。 目录 0.准备 1.目标信息保存 2.检测图片保存 3.保存所有帧 0.准备 本文以单摄像…

基于卷积变分自动编码器的3D数据处理与重建【CVAE】

在这个项目中,我们将学习如何使用卷积变分自动编码器 (CVAE) 来处理和重建 3D 湍流数据。 我们使用计算流体动力学 (CFD) 方法生成 3D 湍流立方体,每个 3D 立方体沿着三个速度分量携带物理信息(与图像数据类似,被视为单独的通道&…

elk中kibana使用

1.前言 kibana是一款作为elasticsearch可视化的一款软件,将elasticsearch中的数据以可视化的状态展现出来,kibana也提供了查询、统计、修改索引等功能 2.kibana使用 索引管理 在索引管理中,可以看到所有索引的状态、运行状况、主分片、副本…

76-基于51单片机家庭红外人体检测震动报警系统(程序+原理图+元件清单全套资料)...

资料编号:076 功能介绍:采用51单片机作为主控CPU,采用红外接触传感器采集当前是否有人,采用震动传感器采集当前是否有震动,起到家庭防盗效果,采用按键设置当前布防/撤防状态,布防状态下&#xf…

Binder系列--获取ServiceManager

获取ServiceManager hongxi.zhu 2023-7-1 以SurfaceFlinger为例&#xff0c;分析客户端进程如何获取ServiceManager代理服务对象 主要流程 SurfaceFlinger中获取SM服务 frameworks/native/services/surfaceflinger/main_surfaceflinger.cpp // publish surface flingersp<…