当前位置: 首页 > article >正文

力扣题解:2、两数相加

个人认为,该题目可以看作合并两个链表的变种题,本题与21题不同的是,再处理两个结点时,对比的不是两者的大小,而是两者和是否大于10,加法计算中大于10要进位,所以我们需要声明一个用来标记是否进位的值。

解题思路:

1、直接从链表头部开始相加就是从数字的最低位开始相加。

2、同时遍历两个链表,将对应位置的数字相加,并考虑前一位的进位。

3、每次相加后,可能会有进位(即和大于等于10),需要将进位加到下一位的计算中。

4、如果两个链表长度不同,较短的链表在后续遍历中可以视为 0

5、如果遍历完所有节点后仍有进位,需要额外创建一个节点来存储这个进位。

代码:

struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) 
{struct ListNode* l3=malloc(sizeof(struct ListNode));struct ListNode* head=l3;int carry=0;
//两个链表不为空或有进位时,进行计算while(l1!=NULL||l2!=NULL||carry!=0){// 初始化和为当前进位int sum=carry;if(l1!=NULL){
// 如果 l1 不为空,累加 l1 的当前值,并移动 l1 到下一个节点sum+=l1->val;l1=l1->next;}if(l2!=NULL){// 如果 l2 不为空,累加 l2 的当前值,并移动 l2 到下一个节点sum+=l2->val;l2=l2->next;}//进位的数字计算carry=sum/10;sum%=10;
//在结果链表创建新结点,存储suml3->next=malloc(sizeof(struct ListNode));l3=l3->next;l3->val=sum;l3->next=NULL;}
// 返回结果链表的头节点(跳过虚拟头节点)return head->next;
}

相关文章:

力扣题解:2、两数相加

个人认为,该题目可以看作合并两个链表的变种题,本题与21题不同的是,再处理两个结点时,对比的不是两者的大小,而是两者和是否大于10,加法计算中大于10要进位,所以我们需要声明一个用来标记是否进…...

C语言_函数hook方案

背景 单体测试中测试一个函数时,该函数调用的其他函数,需要按照测试case,依赖其他函数进行调用参数检查,返回特定值。但是其他函数,不容易做到参数检查和返回特定值,这时需要将其他函数进行hook,hook函数用户自己实现,比较容易实现参数检查和返回值特定值。 本文主要…...

IPM IMI111T-026H 高效风扇控制板

概述: REF-MHA50WIMI111T 是一款专为风扇驱动设计的参考开发板,搭载了英飞凌的IMI111T-026H iMOTION™智能功率模块(IPM)。这个模块集成了运动控制引擎(MCE)、三相栅极驱动器和基于IGBT的功率级,全部封装在一个紧凑的DSO22封装中。REF-MHA50…...

Qt 关于获取postgres time with time zone类型字段存在无效值的情况

Qt 获取 postgres time with time zone类型字段存在无效值的情况 事件起因 在使用Qt获取pg数据库中time with time zone类型字段时偶发出现时间获取失败,体现为获取结果为无效值 QVariant vt sqlQuery->value(i); // QVariant(QTime, QTime(Invalid))查看源码 查看Qt q…...

武汉火影数字|数字科技馆打造:开启科技探索新大门

足不出户,就能畅游科技的奇幻世界,你相信吗?数字科技馆就能帮你实现!在这个数字化的时代,数字科技馆如同一颗璀璨的新星,照亮了我们探索科学的道路。 那么,数字科技馆究竟是什么呢? …...

suricata之日志截断

一、背景 在suricata的调试过程中,使用SCLogXXX api进行信息的输出,发现输出的日志被截断了,最开始以为是解析逻辑有问题,没有解析完整,经过排查后,发现SCLogXXX api内部进行了长度限制,最长2K…...

leetcode 2918. 数组的最小相等和 中等

给你两个由正整数和 0 组成的数组 nums1 和 nums2 。 你必须将两个数组中的 所有 0 替换为 严格 正整数,并且满足两个数组中所有元素的和 相等 。 返回 最小 相等和 ,如果无法使两数组相等,则返回 -1 。 示例 1: 输入&#xf…...

简易图片编辑工具,支持抠图和替换背景

软件介绍 Photo Retouch是一款由微软官方商店推出的免费图片处理软件,具有抠图、换背景、修复等功能,操作便捷且效率极高,非常值得尝试。 功能详解 这款软件提供五大功能,包括删除物体、快速修复、一键抠图、背景调整和裁剪…...

Java Bean容器详解:核心功能与最佳使用实践

在Java企业级开发中,Bean容器是框架的核心组件之一,它通过管理对象(Bean)的生命周期、依赖关系等,显著提升了代码的可维护性和扩展性。主流的框架如Spring、Jakarta EE(原Java EE)均提供了成熟的…...

Spring Security 深度解析:打造坚不可摧的用户认证与授权系统

Spring Security 深度解析:打造坚不可摧的用户认证与授权系统 一、引言 在当今数字化时代,构建安全可靠的用户认证与授权系统是软件开发中的关键任务。Spring Security 作为一款功能强大的 Java 安全框架,为开发者提供了全面的解决方案。本…...

Selenium模拟人类行为,操作网页的方法(全)

看到有朋友评论问,用selenium怎么模仿人类行为,去操作网页的页面呢? 我想了想,这确实是一个很大的点,不应该是一段代码能解决的, 就像是,如果让程序模拟人类的行为。例如模拟人类买菜,做饭&am…...

HNUST湖南科技大学-软件测试期中复习考点(保命版)

使用说明:本复习考点仅用于及格保命。软件测试和其他专业课不太一样,记忆的太多了,只能说考试的时候,想到啥就写啥,多写一点!多写一点!多写一点!(重要事情说三遍&#xf…...

如何使用极狐GitLab 软件包仓库功能托管 python?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 软件包库中的 PyPI 包 (BASIC ALL) 在项目的软件包库中发布 PyPI 包。然后在需要将它们用作依赖项时安装它们。 软件包库适用…...

右值引用的剖析

引入:为什么要有右值引用? 右值引用的存在,就是为了解决左值引用解决不了的问题! 左值引用的问题: 我们知道,左值引用在做参数和做返回值都可以提高效率;但是有时候,我们无法用左…...

tmpfs和普通文件系统相比有哪些优缺点

tmpfs 是一种基于内存的文件系统,与普通文件系统相比,在读写速度、数据安全性等方面存在明显差异,以下是其优缺点对比: 优点 读写速度快:普通文件系统读写数据时,需要通过硬盘等存储设备进行 I/O 操作&…...

高效Python开发:uv包管理器全面解析

目录 uv简介亮点与 pip、pip-tools、pipx、poetry、pyenv、virtualenv 对比 安装uv快速开始uv安装pythonuv运行脚本运行无依赖的脚本运行有依赖的脚本创建带元数据的 Python 脚本使用 shebang 创建可执行文件使用其他package indexes锁定依赖提高可复现性指定不同的 Python 版本…...

配置指定地址的conda虚拟Python环境

创建指定路径的 Conda 环境 在创建环境时,使用 --prefix 参数指定自定义路径: conda create --prefix/your/custom/path/my_env python3.8 说明: /your/custom/path/my_env:替换为你希望存放环境的路径(如 D:\projec…...

《解锁React Native与Flutter:社交应用启动速度优化秘籍》

React Native和Flutter作为当下热门的跨平台开发框架,在优化应用启动性能方面各有千秋。今天,我们就深入剖析它们独特的策略与方法。 React Native应用的初始包大小对启动速度影响显著。在打包阶段,通过精准分析依赖,去除未使用的…...

【Linux系统编程】进程属性--进程状态

1.进程的状态 1.1进程的状态在PCB中就是一个变量 一般用宏来定义,例如: #define RUNNING 1 #define BLOCK 2 struct task_struct中的int status 1.2并行和并发 CPU执行代码,不是把进程代码执行完毕,才执行下一个&#xff0…...

Go Modules 的基本使用

在 Go Modules 项目中,首次运行时下载依赖包的正确流程需要根据项目情况区分处理。以下是详细步骤和最佳实践: 一、首次初始化项目的标准流程 1.1 创建项目目录并初始化模块 mkdir myproject && cd myproject go mod init github…...

光流 | 基于深度学习的光流估计算法汇总,原理,公式,流程图,代码

基于深度学习的光流算法 一、光流估计的基本原理二、基于深度学习的光流估计算法1. **FlowNet系列**2. **FlowNet 2.0**3. **PWC-Net**4. **RAFT(Recurrent All-Pairs Field Transformers)**5. **LiteFlowNet系列**三、算法流程图示例FlowNet2.0架构PWC-Net金字塔处理流程四、…...

高精度之加减乘除之多解总结(加与减篇)

开篇总述:精度计算的教学比较杂乱,无系统的学习,且存在同法多线的方式进行同一种运算,所以我写此篇的目的只是为了直指本质,不走教科书方式,步骤冗杂。 一,加法 我在此讲两种方法: …...

dify插件接入fastmcp示例

文章目录 1. 使用python完成mcp服务1.1 准备环境(python安装fastmcp)1.2 mcp服务端示例代码1.3 启动mcp服务端 2. dify接入2.1 安装MCP SSE和 Agent 策略(支持 MCP 工具) 插件2.2 dify agent插件配置mcp:2.3 mcp服务配置&#xff…...

c++——二叉树进阶

1. 内容安排说明 二叉树在前面C数据结构阶段已经讲过,本节取名二叉树进阶是因为: 1. map和set特性需要先铺垫二叉搜索树,而二叉搜索树也是一种树形结构 2. 二叉搜索树的特性了解,有助于更好的理解map和set的特性 3. 二叉树中部…...

MySQL 中如何进行 SQL 调优?

在MySQL中进行SQL调优是一个系统性工程,需结合索引优化、查询改写、性能分析工具、数据库设计及硬件配置等多方面策略。以下是具体优化方法及案例说明: 一、索引优化:精准提速的关键 索引类型选择 普通索引:加速频繁查询的列&…...

【C++游戏引擎开发】第33篇:物理引擎(Bullet)—射线检测

一、射线检测核心理论体系 1.1 射线检测的数学基础 1.1.1 参数化射线方程 射线在三维空间中的数学表达采用参数方程: r ( t ) = o + t d ^ ( t ∈ [...

基于flask+pandas+csv的报表实现

基于大模型根据提示词去写SQL执行SQL返回结果输出报表技术上可行的,但为啥还要基于pandas去实现呢? 原因有以下几点: 1、大模型无法满足实时性输出报表的需求; 2、使用大模型比较适合数据量比较大的场景,大模型主要…...

PySide6 GUI 学习笔记——常用类及控件使用方法(常用类字体QFont)

文章目录 一、QFont常用方法二、常用方法总结1. 基础属性设置2. 高级样式控制3. 序列化与反序列化4. 字体信息获取 三、应用实例 字体类QFont用于设置界面控件上显示的字体,它包含字体名称、字体尺寸、粗体字、斜体字、删除线、上划线、下划线、字体间距等属性。 如…...

北斗导航 | 北斗RTK定位厄待解决的问题,未来发展

北斗RTK(实时动态定位)技术在高精度定位领域已取得显著进展,但仍面临一系列技术挑战和未来发展方向。以下从亟待解决的问题和未来发展趋势两方面进行详细分析: 一、北斗RTK定位亟待解决的核心问题 电离层扰动对定位精度的影响 电离层扰动是当前北斗RTK技术面临的最大自然挑…...

宝塔服务安装使用的保姆级教程

宝塔介绍: 宝塔面板(BT Panel) 是一款 国产的服务器运维管理面板,主要用于简化 Linux/Windows 服务器的网站、数据库、FTP、防火墙等管理操作。它通过图形化界面(Web端)和命令行工具(bt 命令&a…...