牛客:TOP101链表相加(二)

文章目录

  • 1. 题目描述
  • 2. 解题思路
  • 3. 代码实现

1. 题目描述

在这里插入图片描述

2. 解题思路

  按照我们习惯的加法运算,肯定是要从个位开始相加,然后十位……,但是在链表中如果我们先运算后面的,那么接下来我们是无法找到前一位的。想要解决这个问题也很简单:链表逆置
  逆置完成之后我们就可以从头开始相加了。那么接下了就是两个链表一位一位进行相加了,要注意进位问题噢。
  运算也很简单,取出链表中的数据,进行相加,将结果重新构建一个结点(为了方便连接,我们可以先开辟一个头节点),然后连接到我们的头节点上,然后两个链表都往后移,进行下一位运算,一直到结束。这里要注意两个链表长度不一样,可能会遇到一个链表先走完的情况噢。看代码更好理解一些。

3. 代码实现

/*** struct ListNode {*	int val;*	struct ListNode *next;*	ListNode(int x) : val(x), next(nullptr) {}* };*/
class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类*/ListNode* Reverse(ListNode* head){if(head == nullptr) return nullptr;ListNode *cur = head, *prev = nullptr, *next = cur->next;while(cur){cur->next = prev;prev = cur;cur = next;if(next)next = next->next;}return prev;}ListNode* addInList(ListNode* head1, ListNode* head2) {if(head1 == nullptr) return head2;if(head2 == nullptr) return head1;ListNode* cur1 = Reverse(head1);ListNode* cur2 = Reverse(head2);auto head = new ListNode(-1);  // 头节点auto cur = head;int t = 0;  // 保存进位while(cur1 || cur2 || t)  // 只要有一个没运算完,就继续{int n = 0;// 因为只要cur1 || cur2 || t有一个条件成立,就会进入循环,因此在循环里面要进行判断if(cur1)   {n += cur1->val;cur1 = cur1->next;}// 同理if(cur2){n += cur2->val;cur2 = cur2->next;} n += t;t = n / 10;n %= 10;auto node = new ListNode(n);cur->next = node;cur = cur->next;}// 注意结束后要逆置回去噢,不理解就画图return Reverse(head->next);}
};

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

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

相关文章

数模·插值和拟合算法

插值 将离散的点连成曲线或者线段的一种方法 题目中有"任意时刻任意的量"时使用插值,因为插值一定经过样本点 插值函数的概念 插值函数与样本离散的点一一重合 插值函数往往有多个区间,多个区间插值函数样态不完全一样,简单来说就…

【系统架构设计 每日一问】二 MySql主从复制延迟可能是什么原因,怎么解决

主从复制的架构设计如下图所示: 同步原理 具体到数据库之间是通过binlog和复制线程操作的: Master的更新事件(update、insert、delete)会按照顺序写入bin-log中。当Slave连接到Master的后,Master机器会为Slave开启,binlog dump线程,该线程…

H3CNE(计算机网络的概述)

1. 计算机网络的概述 1.1 计算机网络的三大基本功能 1. 资源共享 2. 分布式处理与负载均衡 3. 综合信息服务 1.2 计算机网络的三大基本类型 1.3 网络拓扑 定义: 网络设备连接排列的方式 网络拓扑的类型: 总线型拓扑: 所有的设备共享一…

Vue3 --- 路由

路由就是一组key-value的对应关系;多个路由,需要经过路由器的管理。 1. 基本切换效果 安装路由器 npm i vue-router /router/index.ts // import { createRouter, createWebHistory } from vue-router import Home from /components/Home.vue import…

萝卜快跑爆火的背后,美格智能如何助力无人车商业化?

近期,“订单量超过600万单”等夺人眼球的信息,让无人驾驶出租车“萝卜快跑”从江城武汉爆火出圈,在2024年的炎炎夏日为这座大火炉再添了一把火。热度背后,不少地方主管部门,近期也纷纷针对无人驾驶出租车、无人驾驶运输…

基于术语词典干预的机器翻译挑战赛笔记Task2 #Datawhale AI 夏令营

上回: 基于术语词典干预的机器翻译挑战赛笔记Task1 跑通baseline Datawhale AI 夏令营-CSDN博客文章浏览阅读718次,点赞11次,收藏8次。基于术语词典干预的机器翻译挑战赛笔记Task1 跑通baselinehttps://blog.csdn.net/qq_23311271/article/d…

C++树形结构(2 树的直径)

目录 1.定义: 2.直径的性质: 3.树的直径求解方法: 4.直径端点求解方法: 朴素方法: 优化方法: 5.例题: 6.直径公共点: 7.例题: 8.去掉再加上: 9.例…

最新版kubeadm搭建k8s(已成功搭建)

kubeadm搭建k8s(已成功搭建) 环境配置 主节点 k8s-master:4核8G、40GB硬盘、CentOS7.9(内网IP:10.16.64.67) 从节点 k8s-node1: 4核8G、40GB硬盘、CentOS7.9(内网IP:10…

框架使用及下载

Bootstrap5 安装使用 | 菜鸟教程 (runoob.com) https://github.com/twbs/bootstrap/releases/download/v5.1.3/bootstrap-5.1.3-dist.zip(下载链接) Staticfile CDN(html的所有框架合集) 直接在w3cschool里面看参考文件进行搜索自…

RHCSA —— 第八节 (编辑器、编辑命令等)

Vi/vim编辑器 vim 编辑器 就是相当于在windows中创建一个记事本,一个word文档里面进行编辑所需要的内容。在linux中编辑文本文件,包括但不限于编辑源代码、配置文件、日志文件等文件内容。 三种模式 这是在编辑器中存在三种模式:命令模式、…

[经验] 驰这个汉字的拼音是什么 #学习方法#其他#媒体

驰这个汉字的拼音是什么 驰,是一个常见的汉字,其拼音为“ch”,音调为第四声。它既可以表示动词,也可以表示形容词或副词,意义广泛,经常出现在生活和工作中。下面就让我们一起来了解一下“驰”的含义和用法。…

Deepfake detection【Datawhale AI夏令营】数据增强方法

deepfake detection比赛链接https://www.kaggle.com/competitions/multi-ffdi 训练分类模型判别图片是否为AI生成图片,探究不同数据增强方法对模型表现的影响。 1、数据增强方法 图像分类任务中常见的数据增强方法: (1) 几何变换…

【BUG】已解决:xlrd.biffh.XLRDError: Excel xlsx file; not supported

已解决:xlrd.biffh.XLRDError: Excel xlsx file; not supported 目录 已解决:xlrd.biffh.XLRDError: Excel xlsx file; not supported 【常见模块错误】 错误原因 解决办法: 欢迎来到英杰社区https://bbs.csdn.net/…

深入解析HNSW:Faiss中的层次化可导航小世界图

层次化可导航小世界(HNSW)图是向量相似性搜索中表现最佳的索引之一。HNSW 技术以其超级快速的搜索速度和出色的召回率,在近似最近邻(ANN)搜索中表现卓越。尽管 HNSW 是近似最近邻搜索中强大且受欢迎的算法,…

详解SVN与Git相比存在的不足

原文全文详见个人博客: 详解SVN与Git相比存在的不足截至目前,我们已既从整理梳理的SVN和Git在设计理念上的差异,也重点对二者的存储原理和分支管理理念的差异进行深入分析。这些差异也直接造成了SVN和Git在分支合并、冲突解决、历史记录管理…

山西大学—双一流大学,考数据结构+C语言。山西大学计算机考研考情分析!

山西大学(Shanxi University),位于山西省太原市,是中国办学历史最悠久的高等学府之一,是国家“双一流”建设高校,教育部和山西省人民政府共同建设的“部省合建高校”,山西省重点建设大学&#x…

JVM监控及诊断工具-命令行篇-jstack命令介绍

加粗样式 JVM监控及诊断工具-命令行篇04-jstack:打印JVM中线程快照 一 基本情况二 基本语法 一 基本情况 jstack(JVM Stack Trace): 用于生成虚拟机指定进程当前时刻的线程快照(虚拟机堆栈跟踪)。 线程快照就是当前虚拟机内指定进程的每一条线程正在执…

新手小白的pytorch学习第七弹------分类问题模型

目录 1. 准备分类数据1.1 输入和输出的形状 shape1.2 将数据转换为张量,同时将我们的数据集转换为训练集和测试集 2 创建模型方法一:自定义forward()方法二:nn.Sequential()方法三:自定义forward()nn.Sequential() 用 pytorch 使用…

基于A律压缩的PCM脉冲编码调制通信系统simulink建模与仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1A律压缩的原理 4.2 PCM编码过程 4.3 量化噪声与信噪比 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 &#…

python项目读取oracle数据库方法(cx_Oracle库实现)

目录 创建一个python项目,并配置运行环境 查看oracle对应数据库版本(该标题下内容只是为了查看版本,不用在意) 从oracle官网下载对应版本的oracle客户端 解压下载的压缩包,并获取依赖 将依赖文件导入python项目运…