code: public <R> void visit(String key, Visitor<T, R> visitor) {
          if (root != null) {
              visit(key, visitor, null, root);
          }
      }
docs: visit the node those key matches the given key
  @param key The key that need to be visited
  @param visitor The visitor object