Binarne drzewo poszukiwań In-Order Traversal do nowej tablicy

głosy
1

Zrobiłem przechodzenie BST w prawidłowej kolejności podczas drukowania do konsoli jako ćwiczenie, ale zadanie było go dodać do nowej listy ...

Próbowałem robić to w podobny sposób, tworząc listę poza metody i zwiększając wartość „x” podczas dodawania do tablicy [I] liście, ale wciąż otrzymuję NullPointerException

Czy ktoś może mi pomóc dowiedzieć się, dlaczego?

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

Dzięki

Utwórz 16/03/2015 o 14:43
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
5
int[] bstArray;  <-------- This line does not create the Array

Rzeczywiście trzeba zainicjować tablicę

int[] bstArray=new bstArray[someLength]; <------- like this
then use 
bstArray[x] = node.getValue();
Odpowiedział 16/03/2015 o 14:45
źródło użytkownik

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