1171. Remove Zero Sum Consecutive Nodes from Linked List

Given the head of a linked list, we repeatedly delete consecutive sequences of nodes that sum to 0 until there are no such sequences.

After doing so, return the head of the final linked list.  You may return any such answer.





def removeZeroSumSublists(self, head: Optional[ListNode]):
    prefix = 0
    seen = {}
    seen[0] = dummy = ListNode(0)
    dummy.next = head
    while head:
        prefix += head.val
        seen[prefix] = head
        head = head.next
    head = dummy
    prefix = 0
    while head:
        prefix += head.val
        head.next = seen[prefix].next
        head = head.next
    return dummy.next

Comments

Popular posts from this blog

849. Maximize Distance to Closest Person

347. Top K Frequent Elements

139. Word Break