code: private Node<E> _find_root(Node<E> node) {
  	if (node.parent != node) {
  	    node.parent = _find_root(node.parent);
  	}
  	return node.parent;
      }
docs: Given a Node<E> node, walk the parent field as far as
  possible, until reaching the root, i.e., the Node<E>
  corresponding to the current representative of this
  equivalence class.  To achieve the low complexity, we also
  compress the path, by making each node a direct son of the
  root.