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

力扣刷题——2181.合并零之间的节点

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

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

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

示例 1:

输入:head = [0,3,1,0,4,5,2,0]
输出:[4,11]

我们要知道,我们输出的答案当系统读到下一个节点为空时,会认为读到了最后一个节点。所以我们可以使用类似双指针的解法,一个节点一直向后遍历链表,当第一个节点遍历到节点值为0或者链表末尾时,使用一个节点来存储另一个节点遍历过的节点的值的和,然后第一个节点向后走。循环结束后,将第一个节点当前位置的next置为空代表链表结束。

class Solution {
public:
    ListNode* mergeNodes(ListNode* head) {
        auto tail=head;
        for(auto cur=head->next;cur->next;cur=cur->next)
        {
            if(cur->val)
            {
                tail->val+=cur->val;

            }
            else
            {
                tail=tail->next;
                tail->val=0;
            }
        }
        tail->next=nullptr;
        return head;
    }
};


http://www.kler.cn/a/589713.html

相关文章:

  • Java中的GC是什么?
  • STM32U575RIT6单片机(四)
  • 基于WebRTC与P2P技术,嵌入式视频通话EasyRTC实现智能硬件音视频交互,适配Linux、ARM、RTOS、LiteOS
  • 深度学习处理时间序列(1)
  • 嵌入式学习笔记-C语言知识点:栈的作用,C语言函数参数的入栈顺序,C++ 拷贝构造函数,数组名和指针的区别与联系,指针运算,指针和引用
  • Apache Spark_解决生产环境数据倾斜问题方案及思路
  • Tomcat新手入门指南:从零开始安装与基本配置
  • Python驱动CATIA自动化建模:科赫雪花算法实现与工程应用
  • 《解锁华为黑科技:MindSpore+鸿蒙深度集成奥秘》
  • 咪咕MG101_晨星MSO9380芯片_安卓5.1.1_免拆卡刷固件包
  • Bash语言的手动测试
  • Keepalived 多主模型与 LVS 高可用
  • 基于System V的共享内存函数使用指南
  • Flume详解——介绍、部署与使用
  • 2025深圳国际数字能源展全球招商启动,9月18日盛大开启
  • XGPT x DeepSeek:微步AI安全助手满血升级
  • 蓝桥杯备考-----》差分数组+二分答案 借教室
  • python局部变量和全局变量
  • nodejs 使用 puppeteer 打印PDF 有元素没有打印出来
  • 什么是广播系统语言传输指数 STIPA