每日一题《leetcode-- LCR 025.两数相加||》

https://leetcode.cn/problems/lMSNwu/


分别把给定的两个链表翻转,然后从头开始相加。

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
//反转链表
struct ListNode* reverselist(struct ListNode*h1)
{
    struct ListNode* newhead = NULL;
    struct ListNode* cur = h1;

    while(cur)
    {
        struct ListNode* next = cur->next;

        cur->next = newhead;
        newhead = cur;
        cur = next;
    }

    return newhead;
}

struct ListNode* add(struct ListNode*head1 , struct ListNode* head2)
{   
    //返回的新链表的头和尾
    struct ListNode* head = NULL,* tail = NULL;
    //进位
    int carry = 0;

    while(head1 || head2)
    {
        int n1 = head1? head1->val : 0;
        int n2 = head2? head2->val : 0;


        int sum = n1 + n2 + carry;

        if(head == NULL)
        {
            head = tail = (struct ListNode*)malloc(sizeof(struct ListNode));
            tail->val = sum % 10;
            tail->next = NULL;
        }
        else
        {
            tail->next = (struct ListNode*)malloc(sizeof(struct ListNode));
            tail->next->val = sum % 10;
            tail = tail->next;
            tail->next = NULL;
        }

        carry = sum / 10;
         
        if(head1)
        {
            head1 = head1->next;
        }

        if(head2)
        {
            head2 = head2->next;
        }
    }

    if(carry > 0)
    {
        tail->next = (struct ListNode*)malloc(sizeof(struct ListNode));
        tail->next->val = carry;
        tail = tail->next;
        tail->next = NULL;
    }


    return head;
}

struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){
    l1 = reverselist(l1);
    l2 = reverselist(l2);

    struct ListNode* l3 = add(l1,l2);
    return reverselist(l3);
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目中统一异常处理

项目中统一异常处理 1.异常处理框架图2.实现 1.异常处理框架图 异常处理除了输出在日志中,还需要提示给用户,前端和后端需要作一些约定: 错误提示信息统一以json格式返回给前端。以HTTP状态码决定当前是否出错,非200为操作异常。…

基于51单片机数控直流数控电源的设计

电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各行各业。当今电源技术融合了电气、电子、系统集成、控制理论、材料等诸多学科领域。直流稳压电源是电子技术常用的仪器设备之一,广泛的应用于教学、科研等领域,是电子实验员、电子设计人员及电路开发部门进行…

Win10 Edge提示兼容性问题打不开|解决浏览器兼容性问题

Edge有时候会与某些安全软件不兼容,导致报错 报错代码:STATUS_INVALID_IMAGE_HASH 解决Edge浏览器兼容性问题方法/步骤: 1、按 Win R 组合键,打开运行,并输入 regedit 命令,确定或回车,可以…

大语言模型实战——最小化模型评测

1. 引言 现在国内外的主流模型,在新模型发布时都会给出很多评测数据,用以说明当前模型在不同数据集上的测评表现(如下面llama3发布的评测数据)。 这些评测数据是如何给出来的呢?这篇文章会用一个最小化的流程来还原下…

【Android】手动下载gradle插件包,解决gradle插件包下载不全问题。

问题描述 拉取别人的项目时,因为网络问题gradle插件包一直下载不全,一直build。 解决方案: 打开gradle>wrapper文件下gradle-wrapper.properties,查看需要下载gradle-7.2-bin.zip。 distributionBaseGRADLE_USER_HOME distr…

kafka 发送文件二进制流及使用header发送附属信息

文章目录 背景案例发送方接收方 背景 需要使用kafka发送文件二进制以及附属信息 案例 发送方 import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord;import java.io.InputStream; import java.nio.charset.S…

Part 4.1 线性动态规划

线性动态规划,即具有线性阶段划分的动态规划。 [USACO1.5] [IOI1994]数字三角形 Number Triangles 题目描述 观察下面的数字金字塔。 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右…

统计信号处理基础 习题解答10-6

题目 在例10.1中,把数据模型修正为: 其中是WGN,如果,那么方差,如果,那么方差。求PDF 。把它与经典情况PDF 进行比较,在经典的情况下A是确定性的,是WGN,它的方差为&#…

数据库(17)——DCL数据控制语言

DCL DCL是Data Control Language数据控制语言,用来管理数据库用户、控制数据库的访问权限。 DCL-管理用户 语法 1.查询用户 USE mysql; SELECT * FROM user; 也可以直接在datagrip找到user表 我们要操作用户要通过User和Host同时定位。Host表示当前用户只能在哪个…

【深度学习实战—9】:基于MediaPipe的坐姿检测

✨博客主页:王乐予🎈 ✨年轻人要:Living for the moment(活在当下)!💪 🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】 目录 😺一、Med…

前端Vue自定义滚动卡片组件设计与实现

摘要 随着技术的日新月异,前端开发的复杂度不断提升。传统的整块应用开发方式在面对小的改动或功能增加时,常常需要修改大量的整体逻辑,造成开发效率低下和维护成本高昂。为了应对这一挑战,组件化开发应运而生。本文将以Vue框架下…

Day46 动态规划part06

完全背包问题 完全背包和01背包问题唯一不同的地方就是,每种物品有无限件。先遍历物品还是先遍历背包以及遍历顺序 根据递推公式可知:每一个dp需要根据上方和左方的数据推出,只要保证数据左上方数据是递推出来的这种两个for循环的顺序就是可…

使用Gradio构建大模型应用:Building Generative AI Applications with Gradio

Building Generative AI Applications with Gradio 本文是学习 https://www.deeplearning.ai/short-courses/building-generative-ai-applications-with-gradio/ 这门课的学习笔记。 What you’ll learn in this course Join our new short course, Building Generative AI A…

C++与Java数据结构设计的区别(持续更新中)

链表 c代码示例 #include <list> int main() {std::list<int> list;list.push_front(1);list.push_back(2);std::list<int>::iterator it list.begin();while (it ! list.end()){std::cout << *it << std::endl;}return 0; } java代码示例 …

C#WPF数字大屏项目实战06--报警信息

1、ItemsControl 简介 ItemsControl 是用来表示一些条目集合的控件&#xff0c;所以它叫条目控件&#xff0c;它的成员是一些其它控件的集合&#xff0c;其继承关系如下&#xff1a; 其常用的派生控件为&#xff1a;ListBox、ListView、ComboBox&#xff0c;为ItemsCo…

Spring Boot 官方不再支持 Spring Boot 的 2.x 版本!新idea如何创建java8项目

idea现在只能创建最少jdk17 使用 IDEA 内置的 Spring Initializr 创建 Spring Boot 新项目时&#xff0c;没有 Java 8 的选项了&#xff0c;只剩下了 > 17 的版本 是因为 Spring Boot 官方不再支持 Spring Boot 的 2.x 版本了&#xff0c;之后全力维护 3.x&#xff1b;而 …

Mac专用投屏工具:AirServer 7 for Mac 激活版下载

AirServer 7 是一款在 Windows 和 macOS 平台上运行的强大的屏幕镜像和屏幕录制软件。它能够将 iOS 设备、Mac 以及其他 AirPlay、Google Cast 和 Miracast 兼容设备的屏幕镜像到电脑上&#xff0c;并支持高质量的录制功能。总的来说&#xff0c;AirServer 7 是一款功能全面的屏…

配置 HTTP 代理 (HTTP proxy)

配置 HTTP 代理 [HTTP proxy] 1. Proxies2. curl2.1. Environment2.2. Proxy protocol prefixes 3. Use an HTTP proxy (使用 HTTP 代理)3.1. Using the examples (使用示例)3.1.1. Linux or macOS3.1.2. Windows Command Prompt 3.2. Authenticating to a proxy (向代理进行身…

Java开发分析工具:JProfiler 14 for Mac/win 激活版下载

JProfiler是一款功能强大的Java应用程序性能分析工具&#xff0c;适用于Java开发人员和企业用户&#xff0c;可帮助他们识别和解决Java应用程序中的性能问题&#xff0c;提高应用程序的性能和稳定性。使用JProfiler&#xff0c;开发人员可以实时查看Java应用程序的性能数据&…

如何实现对亚马逊网站产品搜索结果网页中自动上下页的翻页

需要在亚马逊网站中通过关键词搜索产品时&#xff0c;实现对网页自动进行点击上下页链接翻页&#xff0c;以便进行数据提取。经观察发现&#xff0c;包含上下页翻页链接的HTML内容及代码如下所示&#xff1a; <a href"/s?kiphonecharger&amp;crid1EE3FWFFFIWJEOF&…