code: private void deleteFromTableVToK(int entry, int valueHash) {
      checkArgument(entry != ABSENT);
      int valueBucket = bucket(valueHash);
  
      if (hashTableVToK[valueBucket] == entry) {
        hashTableVToK[valueBucket] = nextInBucketVToK[entry];
        nextInBucketVToK[entry] = ABSENT;
        return;
      }
  
      int prevInBucket = hashTableVToK[valueBucket];
      for (int entryInBucket = nextInBucketVToK[prevInBucket];
          entryInBucket != ABSENT;
          entryInBucket = nextInBucketVToK[entryInBucket]) {
        if (entryInBucket == entry) {
          nextInBucketVToK[prevInBucket] = nextInBucketVToK[entry];
          nextInBucketVToK[entry] = ABSENT;
          return;
        }
        prevInBucket = entryInBucket;
      }
      throw new AssertionError("Expected to find entry with value " + values[entry]);
    }
docs: Updates the V-to-K hash table to remove the entry at the specified index, which is assumed to
  be present. Does not update any other data structures.