Beispiel #1
0
    def removeZeroSumSublists(self, head: ListNode) -> ListNode:
        dummy = ListNode(0)
        dummy.sum = 0
        dummy.next = head
        cur_sum = 0
        p = head
        while p:
            cur_sum += p.val
            p.sum = cur_sum
            p = p.next

        start = dummy
        while start:
            cur = start.next  # node0
            while cur:
                range_sum = cur.sum - start.sum
                if range_sum == 0:
                    start.next = cur.next  # delete start->next 到 cur
                    break
                else:
                    cur = cur.next
            start = start.next
        return dummy.next