Construir una estructura de árbol a partir de la lista de rutas de cadena

Tengo una colección de rutas de cadena como ["x1 / x2 / x3", "x1 / x2 / x4", "x1 / x5"] en una lista. Necesito construir una estructura similar a un árbol a partir de esta lista que se puede iterar para obtener un árbol bastante impreso. Me gusta esto

<code>     x1
    /  \
   x5   x2
       /  \
      x3  x4
</code>

¿Alguna idea / sugerencia? Creo que el problema puede ser atacado primero al procesar la lista de cadenas EDITAR: La respuesta correcta elegida fue una implementación elegante, otras sugerencias también fueron buenas.

Respuestas a la pregunta(5)

Su respuesta a la pregunta