returns the list of root nodes
List<Node<E>> get roots { return _nodes .where((node) => _nodes .where( (element) => idProvider(element.data) == toProvider(node.data)) .isEmpty) .toList(); }