首页 > 其他分享 >2181. 合并零之间的节点

2181. 合并零之间的节点

时间:2024-09-09 23:46:57浏览次数:8  
标签:node ListNode val 合并 next 2181 newhead 节点

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

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

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

/**
 * 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* node = head->next;
        ListNode* newhead = head;
        while (node->next != nullptr) {
            if (node->val) {
                newhead->val += node->val;
            } else {
                newhead = newhead->next;
                newhead->val = 0;
            }
            node = node->next;
        }
        newhead->next = nullptr;
        return head;
    }
};

 

标签:node,ListNode,val,合并,next,2181,newhead,节点
From: https://www.cnblogs.com/mysteryily/p/18405610

相关文章

  • openVX加速-新增自定义节点和示例代码
    在OpenVX中添加自定义节点大概通过以下步骤实现:定义自定义节点的计算逻辑:你需要编写一个C函数来实现自定义的图像处理操作。创建自定义节点:通过定义一个自定义节点核(kernel),并将其注册到OpenVX上下文中。在图中使用自定义节点:使用你定义的节点与OpenVX提供的内......
  • JavaScript操作DOM节点
    1.操作DOM2.节点和节点的关系3.访问节点3.1使用getElement系列方法访问指定节点getElementById()、getElementsByName()、getElementsByTagName()3.2根据层次关系访问节点节点属性属性名称描述parentNode返回节点的父节点childNodes返回子节点集合,childNodes[i]fir......
  • [LeetCode] 2181. Merge Nodes in Between Zeros
    Youaregiventheheadofalinkedlist,whichcontainsaseriesofintegersseparatedby0's.ThebeginningandendofthelinkedlistwillhaveNode.val==0.Foreverytwoconsecutive0's,mergeallthenodeslyinginbetweenthemintoasing......
  • 今日算法随笔:填充每个节点的下一个右侧节点指针 II
    题目链接:117.填充每个节点的下一个右侧节点指针II题目描述给定一个二叉树,填充它的每个next指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将next指针设置为NULL。初始状态下,所有next指针都被设置为NULL。示例:输入:root=[1,2,3,4,5,null,7]输出:[......
  • [Python手撕]合并两个有序链表
    #Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=0,next=None):#self.val=val#self.next=nextclassSolution:defmergeTwoLists(self,list1:Optional[ListNode],list2:Optional[ListNode])->......
  • RocketMQ5部署单节点服务
    关于RocketMQ的单节点部署官方文档已经描述得非常清楚了,这里只是做一个简单的备忘。如下安装步骤均基于最新的ApacheRocketMQ5.3.0实现。下载安装RocketMQ直接下载官方编译后的二进制包到本地并解压。$unziprocketmq-all-5.3.0-bin-release.zip默认情况下,启动RocketMQ至......
  • 华为笔试——输出单向链表中倒数第k个节点
    描述输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。链表结点定义如下:struct ListNode{    int m_nKey;    ListNode* m_pNext;};正常返回倒数第k个结点指针,异常返回空指针.要求:(1)正序构建链表;(2)构建后要忘记链表长度......
  • Day04 链表part02| LeetCode 24. 两两交换链表中的节点,19. 删除链表的倒数第 N 个,160.
    两两交换链表中的节点24.两两交换链表中的节点classSolution{publicListNodeswapPairs(ListNodehead){//设置虚拟头节点ListNodedummy=newListNode(0,head);ListNodecur=dummy;while(cur.next!=null&......
  • ROS - 一个进程中创建多个ROS节点
    文章目录1、概述2、方法1:创建多个命名空间3、方法2:使用多线程4、方法3:节点间通信(分离进程)4、实际验证不可行方案1:两次调用ros::init1、概述在ROS(RobotOperatingSystem)中,每个进程通常只能通过ros::init初始化一个节点。ROS的设计是基于一个进程对应一......
  • kubelet监控worker节点如何实现
    Kubelet是Kubernetes中的关键组件,负责在每个工作节点(workernode)上管理容器和Pod。监控工作节点的状态和性能是Kubelet的重要功能之一。以下是Kubelet监控工作节点的实现原理和方式:1.NodeStatusReporting心跳机制:Kubelet定期向KubernetesAPIServer发送心跳信......