删除链表中连续和为0的节点

import java.lang.*;
import java.util.*;

public class Main{
    
    /*
    删除链表中连续和为0的节点
    */
    static class ListNode{
        int value;
        ListNode next = null;
        public ListNode(int val){
            value = val;
        }
    }
    
    public static ListNode deletConsZero(ListNode head){
        HashMap<Integer, ListNode> map = new HashMap<>();
        int sum = 0;
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        while(dummy != null){
            sum += dummy.value;
            map.put(sum, dummy);
        }
        sum = 0;
        for(ListNode d = dummy; i != null; d = dummy.next){
            sum += d.value;
            d.next = map.get(sum).next;
        }
        return dummy.next;
    }
}

posted @ 2021-11-20 16:05  xmubaron  阅读(30)  评论(0)    收藏  举报