private void updateTopBottom(int myRoot, int destRoot) {

    if (toTop[myRoot]) {
      toTop[destRoot] = true;
    } else if (toTop[destRoot]) {
      toTop[myRoot] = true;
    }

    if (toBottom[myRoot]) {
      toBottom[destRoot] = true;
    } else if (toBottom[destRoot]) {
      toBottom[myRoot] = true;
    }

    if (toTop[myRoot] && toBottom[myRoot]) {
      percolates = true;
    }
  }