public void remove(final Tree<?, ?> child) {
		requireNonNull(child);

		if (!isChild(child)) {
			throw new IllegalArgumentException("The given child is not a child.");
		}
		remove(indexOf(child));
	}
Remove the {@code child} from {@code this} node's child array, giving it
a {@code null} parent.

@param child the child of this node to remove
@throws NullPointerException if the given {@code child} is {@code null}
@throws IllegalArgumentException if the given {@code child} is not a
        child of this node
jenetics.ext/src/main/java/io/jenetics/ext/util/TreeNode.java