2016-10-24 8 views
0

Ich versuche, meine searchReturn-Funktion zu arbeiten, aber es scheint nicht zu bekommen. Außerdem sagt es, dass ich meinen Strom woanders anrufen muss. Aber ich weiß nicht, wie ich es sonst tun soll, also habe ich es als privaten Knotenstrom aufgelistet; am Anfang meines Codes. Ich habe auch Probleme, das i zu erhöhen, so dass, wenn es irgendeine Zahl in meiner Testdatei erreicht, es diesen Knoten zurückgibt.SearchReturn in einer verknüpften Liste

Hier ist meine searchReturn Funktion:

public class List { 
private Node head; 
private int length; 
private Node current; 

//Making the LinkedList, with the head as a new Node 
//and the size of the list set to 0 
public List(){ 
    length = 0; 
} 

public boolean isEmptyList(){ 
    if (length == 0){ 
     return true; 
    } 
    else{ 
     return false; 
    } 
} 

//SearchReturn(L, key): returns a pointer to the Node to the index 
public Node searchReturn(int key) { 
    Node current = head; 
    while(current != null) { 
     key++; 
    } 
    return current; 
} 
+0

Ihre while-Schleife wie Endlosschleife Kumpel aussieht ... Sie ändern sich nicht aktueller Wert überhaupt ... Sie erhöhen nur die Schlüsselwerte. Um zu überprüfen, fügen Sie eine System.out.println ein, um den aktuellen Knoteninhalt zu drucken .. und Sie werden verstehen, worüber ich spreche –

+0

@ShreyasSarvothama, das ist, was ich auch dachte, weshalb ich das vorher hatte: 'public Node searchReturn (int Schlüssel) { \t \t Knotenstrom = Kopf; \t \t während (int i

+0

Kopie Ihren gesamten Code einfügen, Sie sind nicht Ihren aktuellen Code zu bewegen .. Ich fühle mich ein logischer Fehler in Ihrem Programm. Wie Sie den ganzen Code einfügen fügen Sie ihn in Ihre Frage ein –

Antwort

0

Sie müssen den Knoten zu den nächsten key mal vorzurücken:

public Node searchReturn(int key) { 
    Node retVal = head; 
    int i = 0; 
    while(i < key) { 
     if (retVal == null) { 
      return null; 
     } 
     retVal = retVal.next(); 
     i++; 
    } 
    return retVal; 
} 
+0

Sorry, aber was ist retVal? –

+0

@Jim eine lokale Variable verwendet, um die ** val ** ue Sie ** ret ** urn zu halten. Es ist in der ersten Zeile der Methode definiert. – Mureinik

+0

Ich bekomme diesen Fehler, wenn ich versuche, meine Testdatei gegen mein Programm zu starten: Ausnahme im Thread "main" java.lang.NullPointerException Irgendeine Idee warum es noch NullPointer sagt, nachdem ich den searchReturn bearbeitet habe? –

Verwandte Themen