445. 两数相加 II

news2024/11/28 0:39:51

445. 两数相加 II

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。

示例1:

输入:l1 = [7,2,4,3], l2 = [5,6,4]
输出:[7,8,0,7]

示例2:

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[8,0,7]

示例3:

输入:l1 = [0], l2 = [0]
输出:[0]

提示:

  • 链表的长度范围为 [1, 100]
  • 0 <= node.val <= 9
  • 输入数据保证链表代表的数字无前导 0
  • /**
     * 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) {
            //这一题和之前两数相加的区别是,两个链表的节点个数不一致,也就导致不能按从左到右顺序相加
            //智能反过来,从右到左相加,低位先相加
            //遇到的问题是,单链表不能逆序从后往前遍历,
            //借助栈的思想,
            //创建链各个栈
            stack<int>s1,s2;
            while(l1){
                //挨个遍历,挨个压入栈
                s1.push(l1->val);
                l1=l1->next;
            }
            while(l2){
                //挨个遍历,挨个压入栈
                s2.push(l2->val);
                l2=l2->next;
            }
            //两个栈同时出栈,
            //定义一个进位
            int carry=0;
            
            ListNode* head=new ListNode(0);
            ListNode* pre=head;
            while(!s1.empty()||!s2.empty()){
                if(!s1.empty()){
                    carry=carry+s1.top();
                    s1.pop();
                }
                if(!s2.empty()){
                    carry=carry+s2.top();
                    s2.pop();
                }
                int sum=carry%10;
                carry=carry/10;
                ListNode *node=new ListNode(sum);
                //头插法
                node->next=pre->next;
                pre->next=node;
            }
            if(carry!=0){
                ListNode *node=new ListNode(carry);
                node->next=pre->next;
                pre->next=node;
            }
            return pre->next;
        }
    };

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

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

相关文章

RocketMQ教程-(4)-主题(Topic)

本文介绍 Apache RocketMQ 中主题&#xff08;Topic&#xff09;的定义、模型关系、内部属性、行为约束、版本兼容性及使用建议。 定义​ 主题是 Apache RocketMQ 中消息传输和存储的顶层容器&#xff0c;用于标识同一类业务逻辑的消息。 主题的作用主要如下&#xff1a; 定义…

断路器分、合闸线圈直流电阻试验和绝缘电阻试验

断路器分、合闸线圈直流电阻试验 试验目的 对于断路器来说, 分、 合闸线圈是用于控制断路器分合闸状态的重要控制元件。 断路器停电检修时, 可以通过测试分、 合闸线圈的直流电阻来判断其是否正常。 试验设备 万用表 厂家&#xff1a; 湖北众拓高试代销 试验接线 分、 合闸线圈…

Linux系统进程概念详解

这里写目录标题 冯诺依曼体系结构操作系统(Operator System)1.概念2.目的3.管理4.系统调用和库函数概念 进程1.概念2.描述进程-PCB3.查看进程4.通过系统调用获取进程标示符5.通过系统调用创建进程-fork 进程状态1.Linux内核源代码2.进程状态查看 进程优先级1.基本概念2.查看系统…

dxf怎么转换成PDF格式?转换方法其实很简单

PDF文件是一种可靠的文件格式&#xff0c;可以在各种操作系统和软件上打开和查看。而dxf是CAD文件的一种格式&#xff0c;打开它一般都是需要相关的操作软件才能打开&#xff0c;不是特别方便&#xff0c;将dxf文件转换成PDF格式就可以很好的解决这一问题&#xff0c;下面教大家…

python:基于反卷积算法的 GEDI 波形树高特征提取

作者:CSDN @ _养乐多_ 本文将介绍如何对 GEDI(Global Ecosystem Dynamics Investigation)激光雷达数据中所标识激光测高数据点的波形数据使用反卷积算法提取树高特征。 文章目录 一、波形数据提取二、代码详细解释三、完整代码一、波形数据提取 波形数据提取参考博客:《p…

Nodejs+vue+elementui手机电脑产品维修售后服务管理系统

需求分析&#xff0c;也称为软件需求分析、系统需求分析或需求分析工程&#xff0c;是指开发人员经过充分的研究和分析&#xff0c;准确地理解用户和项目在功能、性能、可靠性等方面的具体需求&#xff0c;并将用户的非正式需求表述转化为确定系统必须执行的需求的完整定义的过…

pytorch实现图像remap

def gpu_remap(numpy_img,map_tensor):# 准备图像数据img_tensor torch.from_numpy(numpy_img).contiguous().cuda(non_blockingTrue)img_tensor img_tensor.permute(2,0,1).unsqueeze(0).float()res torch.nn.functional.grid_sample(img_tensor,map_tensor,modebilinear,p…

c语言练手项目【编写天天酷跑游戏2.0】EASYX图形库的运用。代码开源,素材已打包

天天酷跑项目的开发 项目前言 项目是基于Windows&#xff0c;easyX图形库进行开发的&#xff0c; 开发环境&#xff1a;Visual Studio 2022 项目技术最低要求&#xff1a; 常量&#xff0c;变量&#xff0c;数组&#xff0c;循环&#xff0c;函数。 文章目录 天天酷跑项目的…

单体架构与微服务架构

什么是单体架构 单体架构&#xff08;Monolithic Architecture&#xff09;是一种传统的软件架构模式&#xff0c;它将整个应用程序作为一个单一、自治的单元构建和部署。在这种架构中&#xff0c;应用程序的所有功能和组件都被集成到一个统一的代码库中。 在单体架构中&…

【Linux网络】网络编程套接字(一)基础部分

目录 理解源IP地址和目的IP地址理解源MAC地址和目的MAC地址数据在网络传输过程中有两套地址socket通信的本质端口号和目的端口号 Post(端口号) 和 Pid &#xff08;进程ID&#xff09;认识TCP协议和UDP协议 网络字节序 理解源IP地址和目的IP地址 因特网上每台计算机都有自己的…

Jmeter-使用http proxy代理录制脚本

Jmeter-使用http proxy代理录制脚本 第1步&#xff1a;打卡jmeter工具新增1个线程组 第2步&#xff1a;给线程组添加1个HTTP请求默认值 第3步&#xff1a;设置下HTTP请求默认值第4步&#xff1a;在工作台中新增1个----HTTP代理服务器 第5步&#xff1a;设置HTTP代理服务器…

C# List 详解二

目录 5.Clear() 6.Contains(T) 7.ConvertAll(Converter) ,toutput> 8.CopyTo(Int32, T[], Int32, Int32) 9.CopyTo(T[]) 10.CopyTo(T[], Int32) C# List 详解一 1.Add(T)&#xff0c;2.AddRange(IEnumerable)&#xff0c;3.AsReadOnly()&…

区间预测 | MATLAB实现QRFR随机森林分位数回归多输入单输出区间预测

区间预测 | MATLAB实现QRFR随机森林分位数回归多输入单输出区间预测 目录 区间预测 | MATLAB实现QRFR随机森林分位数回归多输入单输出区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRFR随机森林分位数回归多输入单输出区间预测 Matlab实现基…

JVM运行时数据区——方法区的内部结构

方法区用于存储加载的字节码文件的信息&#xff0c;运行时常量池&#xff0c;运行时常量池我们可以把它看作是一张映射表&#xff0c;其中保存了类中的常量&#xff0c;变量&#xff0c;方法的引用。

CSS 瀑布流效果效果

示例 <!DOCTYPE html> <html lang="cn"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>瀑布流效果</title><style>…

【iOS】weak关键字的实现原理

前言 关于什么是weak关键字可以去看看我以前的一篇博客&#xff1a;【OC】 属性关键字 weak原理 1. SideTable SideTable 这个结构体&#xff0c;前辈给它总结了一个很形象的名字叫引用计数和弱引用依赖表&#xff0c;因为它主要用于管理对象的引用计数和 weak 表。在 NSOb…

【Spring Boot自动装配原理详解与常见面试题】—— 每天一点小知识

&#x1f4a7; S p r i n g B o o t 自动装配原理详解与常见面试题 \color{#FF1493}{Spring Boot自动装配原理详解与常见面试题} SpringBoot自动装配原理详解与常见面试题&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页—…

引领AI数据标注行业,景联文科技提供高质量图像和文本标注服务

近年来&#xff0c;我国的数据要素市场呈现出高速增长的趋势&#xff0c;根据国家工信安全中心的统计数据&#xff0c;截至2022年&#xff0c;我国数据要素市场规模已达到815亿元&#xff0c;同比增长49.51%。 数据要素作为数字经济时代的关键要素&#xff0c;是构建新发展格局…

蓝桥杯专题-真题版含答案-【垒骰子_动态规划】【抽签】【平方怪圈】【凑算式】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

【天气雷达】双偏振产品-差分相位ΦDP详解

一、定义 差分相移(Total differential phase,ΦDP) 多普勒天气雷达可以获得目标相对雷达运动产生的相位差。同样运动状态的降水区对于水平偏振波和垂直偏振波引起的相位变化是不同的。这个两者之间的差值与降水区的特性有关,由于这个两者之间差值是雷达电磁波往返于雷达…