public BinarySearchTree <T> Delete(T value) { Guard.Against.Null(value, nameof(value)); if (root != null) { root.Delete(root, value); } return(this); }