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

力扣(LeetCode)每日一题 2181. 合并零之间的节点

题目链接https://leetcode.cn/problems/merge-nodes-in-between-zeros/description/?envType=daily-question&envId=2024-09-09

题目描述

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

我的代码:

创建一个新节点res。遍历一遍。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeNodes(ListNode head) {ListNode h = head;ListNode res = new ListNode();ListNode resIdx = res;int ns = 0;while(h != null){if(h.val == 0){if(ns != 0){resIdx.next = new ListNode(ns);resIdx = resIdx.next;ns = 0;}}if(h.val != 0){ns += h.val;}h=h.next;}return res.next;}
}

提交结果:


http://www.mrgr.cn/news/23457.html

相关文章:

  • SysML图例-混合动力SUV
  • 猫头虎分析:iPhone 16 系列哪款更适合你?买 iPhone 16 选哪款好?
  • RecyclerView更新数据
  • TiDB从0到1学习笔记(精华篇)
  • go系列之 cron 表达式
  • html知识点总结
  • 记录一次部署和查看VUE项目的经过
  • 小明,谈谈你对Vue 虚拟dom的理解
  • 揭开编程的神秘面纱
  • LVM逻辑卷的详细介绍
  • 如何安全,高效,优雅的提升linux的glibc版本
  • 在centos上搭建syslog服务端
  • TAbleau 可视化 干货分享 | 简单三步助你打造完美仪表板
  • 正式开拍!快手联合9大导演使用可灵AI拍摄电影;百度文心一言市场负责人张全文否认放弃通用大模型|AI日报
  • 【Redis】缓存和数据库一致性问题及解决方案
  • 大模型微调使GPT3成为了可以聊天发布指令的ChatGPT
  • ML 系列:机器学习和深度学习的深层次总结(02)线性回归
  • 计算机技术专硕,三维数字地球的学习路径?
  • 02:(固定电阻)线绕电阻/碳质电阻/碳膜电阻/金属膜电阻/金属氧化膜电阻/金属箔电阻
  • Docker Compose version v2.29.2 提示 exited with code 0 解决方案