Ich gehe davon aus, dass es sich um einfache verknüpfte Listen handelt und wir sicher eine Hash-Tabelle mit den Zeigern der Listenelemente erstellen können.
Q1: Iterieren Sie bis zum Ende der beiden Listen. Wenn die jeweiligen letzten Elemente gleich sind, verschmelzen die Listen irgendwann.
Komplexität - O(N)
, Raumkomplexität - O(1)
Q2:
- Alle Elemente einer Liste in eine Hashtabelle eintragen
- Iterieren Sie über Liste 2 und durchsuchen Sie die Hash-Tabelle für jedes Element der Liste. Der erste Treffer (falls vorhanden) ist der Zusammenführungspunkt, und wir haben die Position in der Liste 2.
- Um die Position in der ersten Liste zu ermitteln, wird die erste Liste erneut durchlaufen und nach dem im vorherigen Schritt gefundenen Element gesucht.
Zeitliche Komplexität - O(N)
. Raumkomplexität - . O(N)
Q3:
- Wie Q1, aber auch die Richtung der Listenzeiger umkehren.
- Dann werden die umgekehrten Listen durchlaufen, um das letzte gemeinsame Element zu finden - das ist der Verschmelzungspunkt - und die ursprüngliche Reihenfolge der Liste wiederherzustellen.
Zeitliche Komplexität - O(N)
. Raumkomplexität - O(1)