Binäre Suche Baum In-Order Traversal auf ein neues Array

stimmen
1

Ich habe ein BST in Ordnung Traversal getan, während als eine Übung in die Konsole Druck, aber die Aufgabe war es in eine neue Liste hinzuzufügen ...

Ich versuchte es eine ähnliche Art und Weise tun, indem Sie die Liste außerhalb des Verfahrens zu schaffen und einen Wert ‚x‘, während das Hinzufügen zu dem Array [i] Liste erhöht wird, aber ich erhalte eine Nullpointer

Kann mir jemand, warum helfen herauszufinden?

int[] bstArray;
int x = 0;

public int[] returnInOrderTraversal(BSTNode node) {
    if(node == null) return bstArray;

    if(node.getLeftChild() != null) {
        returnInOrderTraversal(node.getLeftChild());
    }

    bstArray[x] = node.getValue();
    x++;

    if(node.getRightChild() != null) {
        returnInOrderTraversal(node.getRightChild());
    }

    return bstArray;
}

Vielen Dank

Veröffentlicht am 16/03/2015 um 14:43
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
5
int[] bstArray;  <-------- This line does not create the Array

Sie müssen tatsächlich initialisieren das Array

int[] bstArray=new bstArray[someLength]; <------- like this
then use 
bstArray[x] = node.getValue();
Beantwortet am 16/03/2015 um 14:45
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more