Spontan fällt mir folgender Ansatz ein (gerade selbst erdacht): Man probiert vom Eingang UND vom Ausgang gleichzeitig durch. In jedem Feld müsste gespeichert werden, wie man dorthingekommen ist (verkettete Liste, Array). Irgendwann treffen sich beide "Schlangen" und man verknüpft beide Wege zu einem. Naja, obs jetzt schneller ist, kann ich nicht sagen, vielleicht ist das auch kompletter Müll
Aber vielleicht regt es zum Nachdenken an