博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode#链表#1171. 从链表中删去总和值为零的连续节点
阅读量:3952 次
发布时间:2019-05-24

本文共 1247 字,大约阅读时间需要 4 分钟。

给你一个链表的头节点 head,请你编写代码,反复删去链表中由 总和 值为 0 的连续节点组成的序列,直到不存在这样的序列为止。

删除完毕后,请你返回最终结果链表的头节点。

你可以返回任何满足题目要求的答案。

(注意,下面示例中的所有序列,都是对 ListNode 对象序列化的表示。)

示例 1:

输入:head = [1,2,-3,3,1]

输出:[3,1]
提示:答案 [1,2,1] 也是正确的。

示例 2:

输入:head = [1,2,3,-3,4]

输出:[1,2,4]

示例 3:

输入:head = [1,2,3,-3,-2]

输出:[1]

提示:

给你的链表中可能有 1 到 1000 个节点。对于链表中的每个节点,节点的值:-1000 <= node.val <= 1000.

通过次数5,741

提交次数13,618

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/remove-zero-sum-consecutive-nodes-from-linked-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */class Solution {
public ListNode removeZeroSumSublists(ListNode head) {
ListNode dummy = new ListNode(0); dummy.next = head; head = dummy; HashMap
map = new HashMap<>(); int sum=0; ListNode it=head; while(it!=null) {
sum+=it.val; map.put(sum,it); it = it.next; } sum = 0; it = head; while(it!=null) {
sum+=it.val; it.next = map.get(sum).next; it = it.next; } return head.next; }}
你可能感兴趣的文章
Android开发——ListView局部刷新的实现
查看>>
Android开发——ListView的复用机制源码解析
查看>>
Android开发——架构组件LiveData源码解析
查看>>
IDEA常用快捷键整理
查看>>
【Vue】两个元素同一行显示
查看>>
XXL-Job使用
查看>>
如何在SwaggerAPI中添加统一授权认证
查看>>
多线程
查看>>
【Linux】Centos7 常用命令
查看>>
【Redis】Centos7下安装Redis
查看>>
【Redis】Centos7下搭建Redis集群
查看>>
【Redis】Centos7下搭建Redis集群——哨兵模式
查看>>
【Linux】本地ping不同VM虚拟机
查看>>
【SpringCloud】Hystrix
查看>>
乐观锁、悲观锁、公平锁、可重入锁
查看>>
快速阅读——《认知篇》
查看>>
【C#】返回值为DataTable的数据
查看>>
【Asp.net】基本概念
查看>>
【Asp.net】Web服务器控件
查看>>
【Asp.net】内置对象
查看>>