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

LeetCode 2181.合并零之间的节点

题目描述

给你一个链表的头节点 head ,该链表包含由 0 分隔开的一连串整数。链表的 开端 和 末尾 的节点都满足 Node.val == 0 。

对于每两个相邻的 0 ,请你将它们之间的所有节点合并成一个节点,其值是所有已合并节点的值之和。然后将所有 0 移除,修改后的链表不应该含有任何 0 。

返回修改后链表的头节点 head 。

示例 1:

输入:head = [0,3,1,0,4,5,2,0]
输出:[4,11]
解释:
上图表示输入的链表。修改后的链表包含:
- 标记为绿色的节点之和:3 + 1 = 4
- 标记为红色的节点之和:4 + 5 + 2 = 11

示例 2:

输入:head = [0,1,0,3,0,2,2,0]
输出:[1,3,4]
解释:
上图表示输入的链表。修改后的链表包含:
- 标记为绿色的节点之和:1 = 1
- 标记为红色的节点之和:3 = 3
- 标记为黄色的节点之和:2 + 2 = 4

提示:

  • 列表中的节点数目在范围 [3, 2 * 10^5] 内
  • 0 <= Node.val <= 1000
  •  存在连续两个 Node.val == 0 的节点
  • 链表的 开端 和 末尾 节点都满足 Node.val == 0

思路

这是一道字符串模拟题,我们需要模拟合并的过程。首先,为链表添加一个虚拟头节点,定义pre指针用来记录结果链表的最后一个节点,初始是虚拟头节点,定义cur指针来遍历链表。如果下一个节点的值不是0,就将上一个节点的值加到下一个节点上。如果下一个节点的值是0,就将本节点连接到结果链表上,因为本节点的值已经是本段链表的值之和。最后再去除末尾的含0节点即可。

时间复杂度:O(n)

空间复杂度:O(1)

代码

C++版:

/*** 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* dummmyHead=new ListNode();ListNode* pre=dummmyHead;ListNode* cur=head->next;ListNode* tmp;while(cur->next!=nullptr){// 下一个节点的值不是0,让下一个节点的值加上当前节点的值if(cur->next->val!=0){cur->next->val+=cur->val;}else{ // 下一个节点的值是0,让pre->next=cur;pre=pre->next;}// 记录最后一个含0的节点的前一个节点if(cur->next->next==nullptr){tmp=cur;}cur=cur->next;}// 还需要去除最后一个含0的节点tmp->next=nullptr;return dummmyHead->next;}
};

Python版:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def mergeNodes(self, head: Optional[ListNode]) -> Optional[ListNode]:dummyHead=ListNode()pre=dummyHeadcur=head.nexttmp=Nonewhile cur.next!=None:if cur.next.val!=0:cur.next.val+=cur.valelse :pre.next=curpre=pre.nextif cur.next.next==None:tmp=curcur=cur.nexttmp.next=Nonereturn dummyHead.next

需要注意的地方

1.本题容易忽略最后一个节点也是含0节点,需要删除最后一个节点。

相关文章:

LeetCode 2181.合并零之间的节点

题目描述 给你一个链表的头节点 head &#xff0c;该链表包含由 0 分隔开的一连串整数。链表的 开端 和 末尾 的节点都满足 Node.val 0 。 对于每两个相邻的 0 &#xff0c;请你将它们之间的所有节点合并成一个节点&#xff0c;其值是所有已合并节点的值之和。然后将所有 0 …...

千益畅行,共享旅游卡,引领旅游新潮流

千益畅行旅游卡是一款专为旅游爱好者打造的超值卡片。它就像一把神奇的钥匙&#xff0c;为您打开国内丰富多彩的旅游世界。 我们的旅游卡拥有众多令人惊喜的特点。首先&#xff0c;它涵盖了国内 40 多条精心策划的旅游线路&#xff0c;无论您是向往历史文化名城的厚重底蕴&…...

K均值聚类

根据到给点样本的距离&#xff0c;来聚类。 1.曼哈顿距离、 2.欧几里得距离 直线距离 3.切比雪夫距离 4.闵氏距离 5.余弦相似度 对数据大小/长度等不关注&#xff0c;只关注相似度。 6.汉明距离 二进制距离 二、密度聚类 DBSCAN 前提是样本是根据紧密程度分布的。 先用超参…...

【Ubuntu】安装常用软件包

安装java 直接输入java&#xff0c;如果没有安装的话会提醒你输入命令安装&#xff0c;类似 Command java not found, but can be installed with: sudo apt install jdkxxxxxxxxxxxxxx然后选一个版本安装就好&#xff0c;我这里选的jdk17,安装完确认一下 ubuntuVM-4-13-ubu…...

探索全光网技术 | 全光网产品解决方案整理-(宇洪科技)

探索全光网技术 |全光网产品解决方案整理-宇洪科技 目录 一、数据中心场景1、方案概述2、方案需求3、相关产品4、产品推荐5、方案价值 二、教育场景1、方案概述2、方案需求3、相关产品4、方案价值 三、医疗场景1、方案概述2、方案需求3、相关产品4、方案价值 注&#xff1a;本文…...

资料分析(2)

C B 增长量不变就是1002020 上面是利滚利:按照20%当利息 本题:涨跌幅度的意思就是增长率&#xff0c;本题是按照增长率不变的情况下进行计算D B 7551400X>1.2*100000 B B B 总体增量部分增量之和 先进行计算固定通信业务收入的增长量移动通信业务实现收入的增长量 增长量现期…...

百元以下蓝牙耳机性价比之王品牌?四大高能性价比机型推荐

面对市场上琳琅满目的蓝牙耳机品牌和型号&#xff0c;消费者往往难以抉择&#xff0c;特别是当预算限定在百元以下时&#xff0c;找到一款既满足基本功能又具备一定品质的蓝牙耳机变得尤其困难&#xff0c;那么百元以下蓝牙耳机性价比之王品牌&#xff1f;尽管价格是一个重要的…...

考场考生行为检测数据集 7000张 带标注 voc yolo

数据集名称&#xff1a; 考场考生行为检测数据集 数据集规模&#xff1a; 图像数量&#xff1a;7000张标注类型&#xff1a;行为检测&#xff08;例如&#xff1a;作弊、玩手机、睡觉等&#xff09;格式兼容性&#xff1a;支持VOC和YOLO标注格式 数据集内容&#xff1a; 该…...

深度学习算法,该如何深入,举例说明

深度学习算法的深入学习可以从理论和实践两个方面进行。理论上&#xff0c;深入理解深度学习需要掌握数学基础&#xff08;如线性代数、概率论、微积分&#xff09;、机器学习基础和深度学习框架原理。实践上&#xff0c;可以通过实现和优化深度学习模型来提升技能。 理论深入…...

舵机的原理及应用

舵机是一种位置(角度)伺服的驱动器&#xff0c;主要由外壳、电机、减速齿轮组、位置传感器和控制电路等部分组成。一、工作原理 舵机的工作原理是控制电路接收信号源的控制信号&#xff0c;并将其转换为电流信号&#xff0c;驱动电机转动。电机通过减速齿轮组带动输出轴…...

Nacos与Eureka--微服务注册中心

Nacos与Eureka Nacos和Eureka都是微服务架构中常用的服务发现和注册中心解决方案&#xff0c;它们帮助微服务架构中的各个服务实例进行互相发现和通信。 Nacos 是由阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。它支持服务的注册与发现&#xff0c;并且提供了配…...

Android 调试桥——ADB

文章目录 前言ADB 的主要功能设备连接与管理应用安装与卸载文件传输日志查看设备重启 常用命令连接方式有线无线注意点 前言 ADB&#xff08;Android Debug Bridge&#xff0c;安卓调试桥&#xff09;是 Android SDK 提供的一种命令行工具&#xff0c;用于在开发者的计算机和 …...

闲鱼放弃成为淘宝复刻版了吗?上线学生专属交易交流版块“学生鱼”频道

闲鱼是阿里巴巴旗下闲置用品交易平台&#xff0c;目前拥有超5亿用户规模、4000万日活&#xff0c;在去年被阿里定位为第一批战略创新业务&#xff0c;更是肩负“造血”的重任。闲鱼并未明确表示放弃成为淘宝&#xff0c;但近期确实上线了一个针对学生群体的专属交易交流版块——…...

【学习笔记11】如何找到twitter中自己的cookie?

步骤 在浏览器中打开twitter网站&#xff0c;按下CtrlShiftI(i)按下面步骤以此点击 参考 如何找到自己的Facebook XS Cookie和X/Twitter Auth_Token? 一張圖秒懂...

新办建筑智能化专项乙级设计资质,郑州企业需要达到哪些要求?

新办建筑智能化专项乙级设计资质&#xff0c;郑州企业需要达到以下要求&#xff1a; 一、企业基本条件 法人资格&#xff1a; 申请企业必须具有独立法人资格&#xff0c;能够在郑州地区合法经营。注册资本&#xff1a; 企业的注册资本需达到规定标准&#xff0c;通常要求不低于…...

项目管理:项目执行过程中的控制点——基线

项目进度基线详细记录了项目各项活动的计划开始时间、计划结束时间&#xff0c;是项目团队在执行和监控项目进度时的重要参考标准&#xff0c;使得项目执行过程中的任何偏差都能被及时发现和纠正。 基线在项目执行中的作用 1、监控与对比&#xff1a;基线为项目管理者提供了…...

NVIDIA驱动学习

lspci | grep -i vga 输出&#xff1a; 2d:00.0 VGA compatible controller: NVIDIA Corporation Device 2204 (rev a1) 99:00.0 VGA compatible controller: NVIDIA Corporation Device 2230 (rev a1) import torch print(torch.version.cuda) # 应该显示 CUDA 版本 print(to…...

小小GCD、LCM拿下拿下

目录 最大公约数&#xff08;GCD&#xff09; 最大公约数&#xff08;GCD&#xff09;求解&#xff1a; 一、辗转相除法 二、三目运算符 三、位运算 最大公约数&#xff08;GCD&#xff09;模板&#xff1a; 最大公约数&#xff08;GCD&#xff09;例题&#xff1a; 最…...

如何集成Android平台GB28181设备接入模块?

技术优势 大牛直播SDK的Android平台GB28181设备接入模块在适用场景、音视频能力、定位与通信、数据管理、安全性与稳定性、配置与扩展性以及集成与维护等方面均表现出显著的优势。这些优势使得该模块在视频监控、巡检抢修、远程指挥等多个领域具有广泛的应用前景和重要的应用价…...

mysql——关于表的增删改查(CRUD)

目录 比较运算符和逻辑运算符图 一、增加&#xff08;Create&#xff09; 1、全列插入 2、指定列插入 二、查询&#xff08;Retrieve&#xff09; 1、全列查询 2、指定列查询 3、别名&#xff08;as&#xff09; 4、表达式查询 5、去重&#xff08;distinct&#xff09; 6、…...

Umi-OCR深度指南:离线OCR技术的架构解析与全场景实战

Umi-OCR深度指南&#xff1a;离线OCR技术的架构解析与全场景实战 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件&#xff0c;适用于Windows系统&#xff0c;支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/GitHu…...

解放双手!用Open-AutoGLM实现微信自动回复消息,亲测可用

解放双手&#xff01;用Open-AutoGLM实现微信自动回复消息&#xff0c;亲测可用 1. 为什么需要微信自动回复&#xff1f; 每天我们都会收到大量微信消息&#xff1a;工作群的通知、朋友的问候、家人的关心...但总有那么些时刻&#xff0c;我们无法及时回复&#xff1a; 开会…...

试盘Z之主力操盘线

试盘K&#xff0c;以满足特定条件后对该K线标注为试盘字样方便查看。同时通达对9日最低值与9日最高值进行EMA移动平均&#xff0c;得出主力操盘线&#xff01;试盘Z源码:X_1:REF(EMA((HLC)/3,9),1);X_2:EMA(HHV(HIGH,9),3);X_3:EMA(LLV(LOW,9),3);主力操盘线:EMA(X_1*2-X_3,5),…...

从一次数据精度丢失的坑说起:详解Pandas fillna的‘静默下转型’与infer_objects的正确用法

从数据精度陷阱到稳健处理&#xff1a;Pandas类型转换的深度防御实践 1. 当.fillna(0)成为数据分析的隐形杀手 凌晨三点的办公室&#xff0c;咖啡杯早已见底。数据分析师李明盯着屏幕上诡异的报表结果——所有百分比计算结果突然变成了整齐的整数。这个看似简单的数据清洗操作…...

ColorControl专业调校指南:从问题诊断到显示优化的参数配置全流程

ColorControl专业调校指南&#xff1a;从问题诊断到显示优化的参数配置全流程 【免费下载链接】ColorControl Easily change NVIDIA display settings and/or control LG TVs 项目地址: https://gitcode.com/gh_mirrors/co/ColorControl 一、问题诊断&#xff1a;你的显…...

如何彻底解决Zotero-GPT集成中的AI调用故障:从诊断到优化的完整技术指南

如何彻底解决Zotero-GPT集成中的AI调用故障&#xff1a;从诊断到优化的完整技术指南 【免费下载链接】zotero-gpt GPT Meet Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-gpt Zotero-GPT项目作为文献管理工具与大型语言模型的深度集成方案&#xff0c;为…...

毕业季求生指南:用百考通AI重塑你的论文写作全流程

深夜的电脑屏幕前&#xff0c;面对空白的文档和堆积如山的文献&#xff0c;你是否感到无从下手&#xff1f;当查重率居高不下、导师的修改意见密密麻麻时&#xff0c;是否渴望一种更智能的解决方案&#xff1f;本文将为你揭示一个学术写作的新可能。 01 开题之困&#xff1a;从…...

SDXL 1.0绘图工坊环境部署:Ubuntu+conda+4090驱动适配完整流程

SDXL 1.0绘图工坊环境部署&#xff1a;Ubuntuconda4090驱动适配完整流程 1. 环境准备与系统要求 在开始部署SDXL 1.0绘图工坊之前&#xff0c;需要确保你的硬件和软件环境满足以下要求&#xff1a; 硬件要求&#xff1a; 显卡&#xff1a;NVIDIA RTX 4090&#xff08;24GB显…...

Z-Image-GGUF在软件测试中的应用:自动化生成测试用例示意图

Z-Image-GGUF在软件测试中的应用&#xff1a;自动化生成测试用例示意图 你是不是也遇到过这样的场景&#xff1f;写测试用例文档时&#xff0c;为了描述一个复杂的用户操作流程&#xff0c;绞尽脑汁写了半天文字&#xff0c;结果评审时&#xff0c;开发同事还是没完全看懂&…...

RexUniNLU开源镜像免配置教程:自动下载权重+端口映射一步到位

RexUniNLU开源镜像免配置教程&#xff1a;自动下载权重端口映射一步到位 1. 这不是另一个NLP工具&#xff0c;而是一站式中文语义理解中枢 你有没有遇到过这样的情况&#xff1a;想快速验证一段中文文本里藏着多少信息——谁说了什么、发生了什么事、情绪是好是坏、背后有哪些…...