Angenommen, Sie haben eine verknüpfte Listenstruktur in Java. Es besteht aus Knoten:
class Node {
Node next;
// some user data
}
und jeder Knoten zeigt auf den nächsten Knoten, mit Ausnahme des letzten Knotens, der für den nächsten Null hat. Angenommen, es besteht die Möglichkeit, dass die Liste eine Schleife enthält - dh der letzte Knoten hat anstelle einer Null einen Verweis auf einen der Knoten in der Liste, die davor standen.
Was ist die beste Art zu schreiben?
boolean hasLoop(Node first)
Was würde zurückkehren, true
wenn der angegebene Knoten der erste einer Liste mit einer Schleife ist, und false
ansonsten? Wie können Sie so schreiben, dass es konstant viel Platz und eine angemessene Zeit benötigt?
Hier ist ein Bild davon, wie eine Liste mit einer Schleife aussieht:
finite amount of space and a reasonable amount of time?
:)