code: public Optional<Tree<T>> removeFromParent() {
      Tree<T> theParent = this.parent;
      if (parent != null) {
        parent.remove(this);
      }
      return Optional.ofNullable(theParent);
    }
docs: Remove this node from its parent
  
  @return the old parent