Este equipo de expertos luego de muchos días de trabajo y de recopilar de información, dieron con la respuesta, nuestro deseo es que te sea de utilidad en tu trabajo.
Solución:
Esto toma el tiempo O(M+N) y el espacio O(1), donde M y N son la longitud total de las listas enlazadas. Quizás ineficiente si la parte común es muy larga (es decir, M,N >> m,n)
- Recorra las dos listas enlazadas para encontrar M y N.
- Vuelva a las cabezas, luego atraviese |M − N| nodos en la lista más larga.
- Ahora camine al unísono y compare los nodos hasta encontrar los comunes.
Editar: Ver más aquí.
Si es posible, podría agregar un campo de ‘color’ o similar a los nodos. Itere sobre una de las listas, coloreando los nodos a medida que avanza. Luego iterar sobre la segunda lista. Tan pronto como llegue a un nodo que ya está coloreado, habrá encontrado la intersección.
Volcar el contenido (o la dirección) de ambas listas en una tabla hash. primera colisión es su intersección.