Leetcode—2.两数相加【中等】

news2024/11/16 21:37:43

2023每日刷题(十五)

Leetcode—2.两数相加

在这里插入图片描述

迭代法实现代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
    struct ListNode* lc = (struct ListNode*)malloc(sizeof(struct ListNode));
    struct ListNode* p = l1;
    struct ListNode* q = l2;
    lc->next = p;
    int c = 0;
    struct ListNode* p2 = p;
    struct ListNode* q2 = q;
    while(p&&q) {
        c = p->val + q->val + c;
        int tmp = c % 10;
        c /= 10;
        p->val = tmp;
        if(p->next == NULL) {
            p2 = p;
        }
        p = p->next; 
        q = q->next;
    }
    if(p) {
        while(p) {
            c = c + p->val;
            int tmp = c % 10;
            c /= 10;
            p->val = tmp;
            if(p->next == NULL) {
                p2 = p;
            }
            p = p->next;
        }
        if(c != 0) {
            struct ListNode* s = (struct ListNode*)malloc(sizeof(struct ListNode));
            s->val = c;
            s->next = NULL;
            p2->next = s;
            c = 0;
        }
    }
    
    if(q) {
        p2->next = q;
        while(q) {
            c = c + q->val;
            int tmp = c % 10;
            c /= 10;
            q->val = tmp;
            if(q->next == NULL) {
                q2 = q;
            }
            q = q->next;
        }
        if(c != 0) {
            struct ListNode* s = (struct ListNode*)malloc(sizeof(struct ListNode));
            s->val = c;
            s->next = NULL;
            q2->next = s;
            c = 0;
        }
    }

    if(c != 0) {
        struct ListNode* s = (struct ListNode*)malloc(sizeof(struct ListNode));
        s->val = c;
        s->next = NULL;
        p2->next = s;
        c = 0;
    }
    return lc->next;
}

运行结果

在这里插入图片描述

递归实现代码

/**
 * 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, int carry = 0) {
        if(l1 == nullptr && l2 == nullptr) {
            return (carry? new ListNode(carry) : nullptr);
        }
        if(l1 == nullptr) {
            struct ListNode* p = l1;
            l1 = l2;
            l2 = p;
        }
        carry += l1->val + (l2? l2->val: 0);
        l1->val = carry % 10;
        l1->next = addTwoNumbers(l1->next, (l2? l2->next: nullptr), carry/10);
        return l1;
    }
};

运行结果

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

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

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

相关文章

损坏的视频不能观看,还能修复吗?

3-1 在日常的生活或者工作中,特别是做摄像工作的人,有一定的概率会遇到损坏的视频文件,比如相机突然断电、无人机炸机等,都有可能导致保存的视频文件损坏。 如果遇到这种情况,该如何修复这种损坏的视频文件&#xff…

[架构之路-248/创业之路-79]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 供应链管理

目录 前言: 一、企业信息化的结果:常见企业信息化软件 1.1 供应链管理 1.1 什么是供应链与供应链管理What 1.2 为什么需要供应链管理系统Why? 1.3 谁需要供应链管理系统who? 1.4 供应链管理在企业管理中的位置where 1.5 什…

CS224W4.1——PageRank

在这篇中,我们将关注如何将图表示为矩阵,并讨论我们可以探索的后续属性。我们定义了PageRank的概念,进一步探索随机游走,并引入矩阵分解作为生成节点嵌入的视角。在第一部分,我们将介绍PageRank作为在图中对节点重要性…

mybarisplus插件(分页与乐观锁)

文章目录 1.分页插件2.自定义分页3.乐观锁3.1 场景3.2 乐观锁与悲观锁3.3 模拟修改冲突3.4 乐观锁解决问题 1.分页插件 MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能 添加配置类MyBatisPlusConfig Configuration MapperScan("com.atguigu.mybatis…

Cordova插件开发二:高精度定位之卫星数据解析

文章目录 1.最终效果预览2.坐标获取方法3.在公共类中封装获取坐标的通用方法4.插件js中封装startGeoLocation方法5.插件主界面封装的方法1.最终效果预览 2.坐标获取方法 let obj = Object.assign({}, this.mapConfig.mapLocationObj)obj.isKeepCallBack = falselet res = await…

v免签易支付二开版源码+pc端订单监控+支付宝免挂机可回调

v免签二开版,又叫做v免签易支付版。它相当于是通过易支付的方式对接,不用单独搭建易支付系统了 安装教程 1、网站目录->运行目录 设置为public并保存 2、伪静态 设置为thinkphp并保存 3、打开网站目录 config/database.php ,设置好您的m…

cdrx8和2020哪个版本更好用?有什么区别

经过多年的发展,cdr推出了很多优秀的版本,并顺应时代的发展更新了多项功能。随着cdr推出的软件版本增多,小伙伴们可选择的产品也在增多,那么该怎么选择呢?本文会给大家介绍cdrx8和2020的区别,CDRX8和2020哪…

大语言模型(LLM)综述(五):使用大型语言模型的主要方法

A Survey of Large Language Models 前言6 UTILIZATION6.1 In-Context Learning6.1.1 提示公式6.1.2 演示设计6.1.3 底层机制 6.2 Chain-of-Thought Prompting6.2.1 CoT的上下文学习6.2.2 关于CoT的进一步讨论 6.3 Planning for Complex Task Solving6.3.1 整体架构6.3.2 计划生…

【css3】涟漪动画

效果展示 dom代码 <div class"mapSelfTitle66"><div></div> </div> 样式代码 .mapSelfTitle66{width:120px;height:60px;position: relative;&>div{width:100%;height:100%;background: url("~/assets/images/video_show/err…

中国工科研究生200多篇英文论文中最常见的习惯(The Most Common Habits from more than 200 English Papers written by Gradua)

文章目录 中国工科研究生200多篇英文论文中最常见的习惯&#xff08;The Most Common Habits from more than 200 English Papers written by Graduate Chinese Engineering Students&#xff09;1 常见错误1.1 “a, an, the” 冠词的使用1.2 避免使用超过60个单词的长句1.3 通…

Project#1: Buffer Pool

文章目录 Task#1 - LRU-K Replacement PolicySizeRecordAccessSetEvictableEvictRemoveBugsTests Task#2 - Disk SchedulerStartWorkerThreadBUGs- [✅] BUG: std::abortTest Task#3 - Buffer Pool ManagerLearning NoteNewPageFetchPageUnpinPageDeletePageLearningNoteBugs- …

【OpenCV实现图像:用Python生成图像特效,报错ValueError: too many values to unpack (expected 3)】

文章目录 概要读入图像改变单个通道黑白特效颜色反转将图像拆分成四个子部分 概要 Python是一种功能强大的编程语言&#xff0c;也是图像处理领域中常用的工具之一。通过使用Python的图像处理库&#xff08;例如Pillow、OpenCV等&#xff09;&#xff0c;开发者可以实现各种各…

Python框架之Flask入门和视图

一、Flask入门和视图 需要安装Pycharm专业版 1. Flask简介 Python后端的2个主流框架 Flask 轻量级框架Django 重型框架 Flask是一个基于Python实现的web开发微框架 官方文档&#xff1a;https://flask.palletsprojects.com/ 中文文档&#xff1a;https://dormousehole.readthe…

【TES720D】青翼科技基于复旦微的FMQL20S400全国产化ARM核心模

板卡概述 TES720D是一款基于上海复旦微电子FMQL20S400的全国产化核心模块。该核心模块将复旦微的FMQL20S400&#xff08;兼容FMQL10S400&#xff09;的最小系统集成在了一个50*70mm的核心板上&#xff0c;可以作为一个核心模块&#xff0c;进行功能性扩展&#xff0c;特别是用…

每日自动化提交git

目前这个功能&#xff0c;有个前提&#xff1a; 这个git代码仓库&#xff0c;是一个人负责&#xff0c;所以不存在冲突问题 我这个仓库地址下载后的本地路径是&#xff1a;D:\Projects\Tasks 然后我在另外一个地方新建了一个bat文件&#xff1a; bat文件所在目录为&#xff1a…

高效改名,文件夹名称替换:一键批量替换文件夹名中间部分内容

在我们的日常生活和工作中&#xff0c;经常需要处理大量的文件夹&#xff0c;其中有些文件夹名称可能包含我们需要替换的内容。但如果我们一个一个地手动修改文件夹名称&#xff0c;不仅耗时而且容易出错。为了解决这个问题&#xff0c;我们可以使用云炫文件管理器高效的文件夹…

【Mybatis-Plus】代码生成器

目录 安装插件 数据库建表 Other Config Database Code Generator 根据创建好的数据库表&#xff0c;来直接生成代码 安装插件 数据库建表 Other 点开之后有两个功能 1.数据库配置 2.代码生成 Config Database 首先点开这个配置数据库 Code Generator 配置完数据库…

如何让salesforce提交待审批后不锁定记录

在 Salesforce 中&#xff0c;默认情况下&#xff0c;当记录被提交待审批时&#xff0c;它会被锁定以防止其他用户对其进行修改。这是为了确保审批过程中数据的完整性和一致性。然而&#xff0c;有时可能希望提交待审批后不锁定记录&#xff0c;这时可以使用Apex代码来实现: Ap…

驾驶技巧_新手

人人都是老司机 1> 快速起步(手动挡)2> 窄路会车3> 转弯4> 变道 1> 快速起步(手动挡) 【B站】视频讲解 Step 1> 【快 停 慢放】左脚离合&#xff0c;快速抬到半联动点&#xff1b; Step 2> 离合器慢放同时加油&#xff01; 2> 窄路会车 3> 转弯 4&…

docker环境安装+maven依赖继承问题

1&#xff0c;docker环境安装 我们使用yum指令进行安装&#xff0c;分别cmd运行&#xff1a; yum install -y yum-utils device-mapper-persistent-data lvm2 yum-contig-manager --add-repo https://download.docker.com/linux/centos/docker-ce.rep具体解释如下&#xff1a;…