蓝桥杯---链表题目1

文章目录

  • 1.题目概述
  • 2.思路分析
  • 3.代码解析

1.题目概述

这个题目模拟的就是两个数字的求和:在这个过程中我们的每一个数字都是按照相反的这个顺序给出来的,例如254,在这个链表上面进行表示的时候就是452,这个是顺序的问题,在这个题目上面也是有这个对应的说明的:数字按照逆序的方式进行存储;

给定的这个示例1里面:342+465都是按照这个相反的这个顺序排列的,但是这个进行求和的结果是按照我们的正常的这个顺序进行计算的,得到的结果就是807也是使用的这个逆序的方式进行表示的;

2.思路分析

我们首先需要明白这个题目为什么需要逆序:342+465这两个数字进行加法操作的时候,实际上这个逆序是方便我们进行处理的,因为我们相加操作的时候,是从这个个位开始计算结果的,因此这个逆序之后,我们可以直接从这个链表的第一个节点开始进行这个运算,这个是简化了我们的相关操作的;

如果题目给的不是逆序的这个链表,这个时候你需要想办法获取这个最后一个数字,然后进行求和,这样反而会变得更加复杂一些,因此如果题目没有进行这个逆序的操作,我们是需要首先对于这个链表里面的元素进行逆序的处理的,这样才可以方便我们的后续的操作;

首先就是进行这个指针的定义,cur1和cur2分别指向这两个链表里面的第一个元素,这个时候我们的这个计算的过程就开始了;t就是计算这个对应的数位上面的数字的求和的结果;

我们需要定义一个虚拟的头结点,为什么需要进行定义虚拟头结点,这个原因需要明白:如果你不进行这个虚拟的头结点的定义,你需要把这个7放到头结点里面去,就是你需要进行额外的处理,而且最后返回的之后不方便,定义了这个虚拟的头结点之后,你直接把这个计算的结果连接到我们的虚拟头结点的后面,最后返回的时候直接返回这个虚拟头结点的next位置,这个非常方便,希望你可以用心体会这个好处;

原本的这个t=7,放到我们的newhead虚拟节点的下一个位置之后,这个t就会变成0,这个时候cur1,cur2指向的就是新的元素,这个时候两个元素就是6+4=10,但是这个时候t=10的话,我们往这个链表里面并入的元素是0,也就是t%10操作结果,剩下的那个t/10当做的进位的,所以我们不能放到链表里面去,而是需要和下一位一起进行处理

接下来,这个cur1这个时候已经是没有数据了,所以这个时候cur2的位置对应的元素和我们的这个进位的1,也就是我们的这个t剩下的1相加,等于5放到我们的这个链表的后面;

上面的这个操作结束之后,我们的这个cur2本来应该是继续移动的,但是这个时候cur2下一个位置也是没有任何的元素了,这个时候我们的整个过程就结束了;

3.代码解析

首先进行这个cur1,cur2的相关的定义,prev就是我们的尾指针,cur1和cur2只要有一个不是空的,我们的这个循环就需要继续,所以这个while里面的这个逻辑运算符是或者,而不是且;

t!=0主要是因为防止这个最后一次计算的hi后依然是存在这个进位的,例如333+664,最后的这个还是进了一个1,这个时候虽然cur1和cur2都结束了,但是这个t里面还是有结果的,这个结果我们是不可以扔掉的;

粗人不是空的时候加到t上面去,移动到下一个位置,cur2也是同理,prev.next就是连接到我们的这个虚拟头节点后面的这个元素,根据上面分析的结果t%10的结果放到我们的这个链表里面去,prev继续右移,t需要进行这个更新的操作;

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

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

相关文章

基于javaweb的SpringBoot杂物商城系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

python编写的一个打砖块小游戏

游戏介绍 打砖块是一款经典的街机游戏,玩家控制底部的挡板,使球反弹以击碎上方的砖块。当球击中砖块时,砖块消失,球反弹;若球碰到挡板,则改变方向继续运动;若球掉出屏幕底部,玩家失…

Xxl-Job学习笔记

目录 概述 核心架构 核心特点 应用场景 什么是任务调度 快速入门 获取源码 初始化调度数据库 基本配置 数据源datasource 邮箱email(可选) 会话令牌access token 启动调度中心 启动执行器 依赖 yaml基本配置 XxlJobConfig类配置 定义执…

【Java--数据结构】优先级队列( PriorityQueue)

一. 优先级队列 1.1 优先级队列的概念 优先级队列是一种特殊的队列,它在入队时会根据元素的优先级进行排序,优先级最高的元素排在队列的前面,出队时会优先出队优先级最高的元素。 1.2 优先级队列的区别 (1)与普通…

【网络编程】HTTP网络编程

13.1 HTTP 简介 HTTP(Hyper Text Transfer Protocol,超文本传输协议)是用于从万维网(WWW:World Wide Web) 服务器(简称Web 服务器)传输超文本到本地浏览器的传送协议,基于TCP/IP 通信协 议来传递数据 (HTML 文件、图片文件、查询结果等)。 13.2 HTTP 的工作原理 …

前端(vue)学习笔记(CLASS 3):生命周期工程化开发入门

1、生命周期 Vue生命周期:一个Vue实例从创建到销毁的整个过程 生命周期四个阶段:创建、挂载、更新、销毁 1、创建阶段:响应式数据 2、挂载阶段:渲染模板 3、更新阶段:数据修改、更新视图(执行多次&…

【C++】每日一练(有效的括号)

本篇博客给大家带来的是用C语言来解答有效的括号! 🐟🐟文章专栏:每日一练 🚀🚀若有问题评论区下讨论,我会及时回答 ❤❤欢迎大家点赞、收藏、分享! 今日思想:不服输的少年…

一文讲清楚CUDA与PyTorch、GPU之间的关系

CUDA(Compute Unified Device Architecture)是由NVIDIA开发的一个并行计算平台和编程模型。它允许软件开发人员和研究人员利用NVIDIA的GPU(图形处理单元)进行高性能计算。CUDA提供了一系列API和工具,使得开发者能够编写…

Linux:基本指令与内涵理解

1.文件操作指令 1.1 ls ls指令用于查看指定层级文件夹下的文件或文件夹 基本格式:ls (选项) (查看层级) 其中选项处不写就默认是显示文件名,查看层级默认是当前层级 选项1: -l 作用:将查找文件的详细信息显示出来 我们…

手机屏幕摔不显示了,如何用其他屏幕临时显示,用来导出资料或者清理手机

首先准备一个拓展坞 然后 插入一个外接的U盘 插入鼠标 插入有数字小键盘区的键盘 然后准备一根高清线,一端链接电脑显示器,一端插入拓展坞 把拓展坞的连接线,插入手机充电口(可能会需要转接头) 然后确保手机开机 按下键盘…

Unity学习日志番外:简易行为树

Unity简单行为树 参考与代码来自b站-ANVER-大佬教学视频以下都是一种固定模板结构,便于外部以及新项目引用。1.BehaviorTree类2.Node类3.composite4.Sequence5.Selector6.Task7.Blackboard8.实例①兔子行为树②巡逻任务③探测萝卜任务③吃萝卜任务 个人对行为树的理…

【SpringBoot】MD5加盐算法的详解

目录 一、什么是加盐算法 二、如何实现加盐算法 2.1 加盐算法代码实现 2.2 注册页面中进行密码加盐 2.3 登录页面进行加盐的解密 2.4 注册和登录 一、什么是加盐算法 加盐算法是一种用于增强密码安全性的技术。这种技术通过在密码存储过程中添加一个随机生成的盐值&…

【Linux学习笔记】Linux用户和文件权限的深度剖析

【Linux学习笔记】Linux用户和文件权限的深度剖析 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 前言 文章目录 【Linux学习笔记】Linux用户和文件权限的深度剖析前言一. Linux权限管理1.1 文件访问者的分类(人)…

MinIO问题总结(持续更新)

目录 Q: 之前使用正常,突然使用空间为0B,上传文件也是0B(部署在k8s中)Q: 无法上传大文件参考yaml Q: 之前使用正常,突然使用空间为0B,上传文件也是0B(部署在k8s中) A: 1、检查pod状态…

c语言经典基础编程题

c语言经典基础编程题 一、输出输出1.1温度输出1.2排齐数据1.3进制转换 二、选择分支2.1求最大值2.2成绩评定2.3分段函数求值2.4 利润计算2.5判断闰年2.6二次方程根 三、循环结构3.1倒数求和3.2最大数3.3判断素数3.4判断完全数3.5打印菱形🚀🚀&#x1f68…

[多线程]基于阻塞队列(Blocking Queue)的生产消费者模型的实现

标题:[多线程]基于阻塞队列(Blocking Queue)的生产消费者模型的实现 水墨不写bug 文章目录 一、生产者消费者模型特点:二、实现2.1详细解释1. 成员变量2. 构造函数3. Isfull 和 Isempty4. Push 函数5. Pop 函数6. 析构函数7. GetSize 函数 三、总结与多线…

在vs中无法用QtDesigner打开ui文件的解决方法

解决方法 右键ui文件,选择打开方式,弹出如下界面。 点击添加,弹出如下界面 点击程序后边的三个点,去电脑查找designer.exe,我的位置为D:\Qt\Qt5.9.9\5.9.9\msvc2015_64\bin\designer.exe。 名称可以自己起一个名字&#xff0c…

[内网渗透] 红日靶场2

环境配置 靶场地址: http://vulnstack.qiyuanxuetang.net/vuln/wiki/ 环境配置可以看这个: https://www.bilibili.com/video/BV1De4y1a7Ps/?spm_id_from333.337.search-card.all.click&vd_sourcecf73ac8de9b7c0322b1bccf77de91c5dNAT模式分配111段, DHCP也要更改 再添加…

第八节:红黑树(初阶)

【本节要点】 红黑树概念红黑树性质红黑树结点定义红黑树结构红黑树插入操作的分析 一、红黑树的概念与性质 1.1 红黑树的概念 红黑树 ,是一种 二叉搜索树 ,但 在每个结点上增加一个存储位表示结点的颜色,可以是 Red和 Black 。 通过对 任何…

基于Spring Boot的网上蛋糕售卖店管理系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…