code: private static <I> void markAndPropagate(DTNode<I> node, Boolean label) {
          DTNode<I> curr = node;
  
          while (curr != null && curr.getSplitData() != null) {
              if (!curr.getSplitData().mark(label)) {
                  return;
              }
              curr = curr.getParent();
          }
      }
docs: Marks a node, and propagates the label up to all nodes on the path from the block root to this node.
  
  @param node
  the node to mark
  @param label
  the label to mark the node with