力扣每日1题--2181.合并零之间的节点

news2024/12/25 14:28:15

问题

下面我会向大家介绍我的思考过程和解题思路

解题思路

首先,我们看问题提供给我们的提示部分。第一点给了我们节点的数目,第二点给了我们val的范围,而我们这道题是要让我们求和的问题,那么我们就应该估算一下我们数据的一个大概的范围为(0,2*10^8);第三条说不存在连续两个val=0的节点,我们就可以在计算时,每遍历到一个val=0的节点时,就相当于把它和它上一个0之间的节点遍历完了,我们直接将其保存下来,继续遍历即可;第四点告诉我们开头和结尾节点的val都=0,这个就相当于告诉我们了一些特殊情况的处理,当遍历到最后一个部分时,我们也可以以val=0为判断依据结束求和。如果没有这个条件,我们判断的条件就需要改为Node.val==0||Node.next==NULL。

然后根据我们对题目和提示的分析我们定义一个p指针用来遍历储存求得的和的链表(在这里我将求得的和也保存在了原链表中),定义一个q指针用来遍历原链表,我们在每次遍历到val=0的节点时将和sum保存下来,并将其重新赋值为0,用来继续下一个部分的求和。

代码实现

/**
 * 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* mergeNodes(ListNode* head) {
        ListNode* p=head;//遍历求得的和的链表
        ListNode* q=head->next;//遍历原链表
        int sum=0;//用来计算每一部分的和
        while(q!=NULL)
        {
            if(q->val==0)
            {//这里我做了一个处理,先让p向后遍历了一步再将sum的值保存下来,这样在最后返回结果时需要返回head->next。如果先保存和再让p向后走,到了最后返回head,但会将原链表中p的下一个节点也保存在我们的结果链表中,得不偿失。
                p=p->next;
                p->val=sum;
                sum=0;                
            }
            else
            {
                sum+=q->val;
            }
            q=q->next;
        }
        p->next=nullptr;
        return head->next;
    }
};

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

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

相关文章

多目标优化算法求解UF1、UF2、UF3、UF4、UF5、UF6、UF7、UF8、UF9、UF10

设计新的多目标测试函数时,需要考虑多个因素以确保它们能够有效地评估和比较多目标优化算法。以下是一些常见的设计原则和考虑因素: 目标函数的多样性:测试函数应涵盖不同类型的目标函数,如线性、非线性、凸函数、凹函数等&#x…

智慧矿山数字化工业大数据平台建设方案(52页PPT下载)

方案介绍: 传统矿山面临生产效率低、资源消耗大、安全隐患多、环境污染严重等问题,急需通过数字化转型实现可持续发展。而智慧矿山数字化工业大数据平台建设方案则可以有效的帮助矿业企业构建一个集数据采集、存储、处理、分析及应用于一体的智慧矿山数…

使用lspci命令获取加速卡型号

文章目录 前言一、lspci -nn 获取具体厂商及设备ID二、使用步骤三、使用3080Ti再查询一下 前言 新到的实验机器和加速卡,安装好之后发现lspci命令没有显示型号,这里记录下使用 Vendor ID和Device ID 通过网页查询获取加速卡具体型号的过程。 一、lspci …

Flutter动画—涟漪效果

功能分析 涟漪是由几个圆重叠在一起的 外层圆环比内层圆环的背景色要淡,可以改变外层圆的透明度 想要达到涟漪效果只要将每个圆的半径慢慢变大并且循环动画即可 ​实现方法 在画板上创建三个圆环,再实现外层的圆环要比内层圆环的颜色要淡。 class …

第二十四篇——地形篇:知己知彼知地形

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 战略层面的东西宏观了解了之后,越到最后,这些战术…

OpenAI gym: How to get complete list of ATARI environments

题意:OpenAI Gym:如何获取完整的 ATARI 环境列表 问题背景: I have installed OpenAI gym and the ATARI environments. I know that I can find all the ATARI games in the documentation but is there a way to do this in Python, witho…

神经网络—参数初始化、激活函数、损失函数及反向传播算法

基础知识点 神经网络NN(Neural Netwarks) 深度学习(Deep Learning) 神经元(Neuron) 深层神经网络(Deep Neural Networks,DNNs) 神经网络有下面三个基础层(Layer)构建而成: 输入层(Input&am…

在线翻译百度,以及这三款实用便捷的翻译工具

嘿,朋友们,今天咱们来聊聊那些在日常生活和工作中不可或缺的在线翻译工具。说到这个,那绝对不能不提百度翻译了。那么,接下来就让我用口语化的方式给大家介绍一下它以及另外几款我推荐的翻译工具吧: 百度翻译推荐&…

CCF编程能力等级认证GESP—C++8级—20240907

CCF编程能力等级认证GESP—C1级真题 单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)手套配对美丽路径 单选题(每题 2 分,共 30 分&…

猿大师办公助手在线编辑Office/wps网页组件COM加载项启用说明

猿大师办公助手作为国内一款优秀的在线编辑Office插件,越来越受到更多客户的认可并实施了采购,猿大师办公助手与其他的厂商采用弹窗模式实现网页内嵌不同,猿大师办公助手是目前国内唯一真正实现网页内嵌本机Office的方案,效果如下…

怎样将vue项目 部署在ngixn的子目录下

如果同一服务器的80端口下,需要部署两个或以上数量的vue项目,那么就需要将其中一个vue项目部署在根目录下,其他的项目部署在子目录下. 像这样的配置 访问根目录 / 访问灭火器后台管理,访问 /mall/ 访问商城的后台管理 那么商场的vue项目,这样配置,才能在/mall/下正常访问? 1…

华为 HCIP-Datacom H12-821 题库 (10)

有需要题库的可以看主页置顶 V群进行学习交流 1.缺省情况下,BGP 对等体邻接关系的保持时间是多少秒? A、120 秒 B、60 秒 C、10 秒 D、180 秒 答案:D 解析: BGP 存活消息每隔 60 秒发一次,保持时间“180 秒” 2.缺省…

【Unity】简易而又实用的抽卡算法

1.两个数中任选一个&#xff08;抛硬币&#xff09; 基础版本&#xff1a; public int RandomBetweenTwoNumber(int a,int b) {float random Random.Range(0,1f);return radom<0.5f ? a : b ; } 升级版本&#xff08;支持概率调整&#xff09;&#xff1a; /*pa表示“…

MATLAB精美绘图详解

目录 一、常见二维图形绘制 二、常见三维图形绘制 三、图形修饰与处理 四、动画制作 五、常见绘图种类与特点总结 总结 MATLAB提供了非常丰富的绘图功能&#xff0c;不仅可以用于二维、三维的基本图形绘制&#xff0c;还包括特殊图形、动画制作等多种功能。在本文中&#…

Flutter框架——2.状态-路由-包-资源

文章参考了Flutter中国开源项目发起人杜文&#xff08;网名wendux&#xff09;创作的一本系统介绍Flutter技术的中文书籍《Flutter实战第二版》&#xff0c;网址&#xff1a;第二版序 | 《Flutter实战第二版》 https://book.flutterchina.club/#第二版变化 文章目录 一、状态管…

使用MATLAB进行动力学分析与可视化

目录 一、动力学与MATLAB概述 二、动力学系统的建模 1. 简谐振子 2. 单摆 三、动力学系统的仿真 1. 使用ode45求解简谐振子 2. 使用ode45求解单摆 四、动力学结果的可视化 1. 二维曲线图 2. 相空间图 3. 三维曲面图 4. 动画制作 五、复杂动力学系统的建模与仿真 1…

3、Hadoop部署

1、 Hadoop部署 1&#xff09;集群部署规划 注意&#xff1a;NameNode和SecondaryNameNode不要安装在同一台服务器 注意&#xff1a;ResourceManager也很消耗内存&#xff0c;不要和NameNode、SecondaryNameNode配置在同一台机器上。 hadoop102 hadoop103 hadoop104 HDFS…

SSM框架学习(二:SpringFramework实战指南)

目录 一、SpringFramework介绍 1.总体技术体系 &#xff08;1&#xff09;单一架构 &#xff08;2&#xff09; 分布式架构 2.Spring 和 SpringFramework概念 &#xff08;1&#xff09;广义的 Spring&#xff1a;Spring 技术栈&#xff08;全家桶&#xff09; &#xff…

【ARM】如何通过 KeilMDK 查看芯片的硬件信息

【更多软件使用问题请点击亿道电子官方网站】 文档目标&#xff1a;解决在开发过程中对于开发项目所使用的的芯片的参数查看的问题 问题场景&#xff1a;在项目开发过程中&#xff0c;经常需要对于芯片的时钟、寄存器或者一些硬件参数需要进行确认。大多数情况下是需要外部查找…

AI边缘控制器:重塑工业自动化与控制的新篇章

在智能制造和工业4.0的浪潮下&#xff0c;AI边缘控制器作为新一代智能控制设备&#xff0c;正逐步成为推动工业自动化与数字化转型的关键力量。这类基于x86架构的高性能IPC&#xff08;工业个人计算机&#xff09;形态产品&#xff0c;不仅继承了传统PC的可扩展性、开放性和可视…