Binært søketre I-Order Traversal til en ny matrise

stemmer
1

Jeg har gjort en BST i-order traversering mens du skriver ut til konsollen som en øvelse, men oppgaven var å legge den inn i en ny liste ...

I prøvde å gjøre det på lignende måte ved å skape listen utenfor fremgangsmåten og å inkrementere en verdi 'x' mens tilsetning til matrisen [i] liste men jeg får en NullPointerException

Kan noen hjelpe meg å finne ut hvorfor?

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;
}

Takk

Publisert på 16/03/2015 klokken 14:43
kilden bruker
På andre språk...                            


1 svar

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

Du trenger faktisk å initial matrisen

int[] bstArray=new bstArray[someLength]; <------- like this
then use 
bstArray[x] = node.getValue();
Svarte 16/03/2015 kl. 14:45
kilden bruker

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