文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一个链表的头节点 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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-nodes-in-between-zeros
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • p 记录存值的指针,pp 为 p 的前驱节点,cur 遍历链表
/*** 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, *pp = NULL, *cur = head->next;while(cur){if(cur->val){p->val += cur->val;}else // 遇到0,p 移动{pp = p;p = p->next;p->val = 0;}cur = cur->next;}pp->next = NULL;return head;}
};

524 ms 247.1 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2181. 合并零之间的节点(链表)相关推荐

  1. LeetCode 27 合并两个排序的链表

    题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1:   输入:1->2->4, 1->3->4                 输出:1 ...

  2. 写出一段代码将链表中的两个节点位置互换位置_面试 leetcode 算法专题系列(二)—— 链表...

    前言:只照着常考题去刷题确实是一种方法.但调研之后发现自己还是考虑不周,刷题刷的不应该是题,而是解题的思路和熟练程度.于是我决定重新组织一下刷题笔记的讲解顺序,不再以面试常考题来刷.而是以面试出题频率 ...

  3. 《LeetCode力扣练习》剑指 Offer 25. 合并两个排序的链表 Java

    <LeetCode力扣练习>剑指 Offer 25. 合并两个排序的链表 Java 一.资源 题目: 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: ...

  4. LeetCode 21. 合并两个有序链表(单链表)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例:输入:1->2->4, 1-> ...

  5. 【LeetCode】剑指 Offer 25. 合并两个排序的链表

    [LeetCode]剑指 Offer 25. 合并两个排序的链表 文章目录 [LeetCode]剑指 Offer 25. 合并两个排序的链表 一.递归 二.伪头节点 总结 一.递归 思路: 如果有一个 ...

  6. [分治] leetcode 23 合并K个升序链表

    [分治] leetcode 23 合并K个升序链表 1.题目 题目链接 给你一个链表数组,每个链表都已经按升序排列. 请你将所有链表合并到一个升序链表中,返回合并后的链表. 示例1: 输入:lists ...

  7. [递归|迭代] leetcode 21 合并两个有序链表

    [递归|迭代] leetcode 21 合并两个有序链表 1.题目 题目链接 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2 ...

  8. Leetcode(24)——两两交换链表中的节点

    Leetcode(24)--两两交换链表中的节点 题目 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 示例 1: ...

  9. LeetCode 21. 合并两个有序链表(链表)

    上一篇博客:LeetCode 20. 有效的括号(栈.字符串)  写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.最近萌生了刷LeetCode ...

最新文章

  1. 使用DOM4J读取和维护XML数据
  2. 第三次学JAVA再学不好就吃翔(part26)--static关键字
  3. CSS Grid布局(3)
  4. 软件定义存储的系统架构图和关键技术
  5. 物联网通信之Coap 协议
  6. noi.ac #529 神树的矩阵
  7. CentOS 7下载地址(ISO文件)
  8. Hive中变量的使用
  9. 最新!7月份火爆Github的热门Python项目
  10. ansible (一)
  11. php m3u8cms,苹果cms V8和V10整合Dplayer播放器插件支持mp4和m3u8格式播放
  12. 2022年中国智能家居产业链图谱 | 产业链全景图
  13. ITK——5. 利用ITK自身的多线程加速filter计算
  14. 倒排索引-字符串相似匹配(结巴分词、中文转拼音)
  15. 计算机画图学生作品小学,小学电脑绘画作品的指导
  16. opencv surf特征点检测(二),API接口分析
  17. Microchip PIC系列8位单片机入门教程(一)开发环境建立
  18. 深度学习 卷积神经网络原理
  19. 你知道那些数字消失了吗?_?
  20. 001_A private conversation

热门文章

  1. python threading 结束线程
  2. Django中的Model模型
  3. 【Nginx】通过反向代理配置本地图床功能
  4. Series和DataFrame、相关性及NaN处理
  5. linux下的安装:openssl
  6. 纽曼皮尔逊准则Matlab实现,纽曼-皮尔逊准则,Neyman Pearson Criterion,在线英语词典,英文翻译,专业英语...
  7. java socket 对方关闭_java Socket判断对方是否已关闭连接
  8. 字符设备驱动高级篇5——静态映射表、动态映射结构体方式操作寄存器
  9. 字符设备驱动高级篇3——自动创建字符设备驱动的设备文件
  10. linux gunzip r .tar,Linux命令之文件归档、压缩、解压缩tar,gzip,gunzip,bzip2,bunz -电脑资料...