Binary Search Boom In-Order Traversal om een ​​nieuwe array

stemmen
1

Ik heb een BST in orde traversal gedaan terwijl het afdrukken naar de console als een oefening, maar de taak was om het in een nieuwe lijst toe te voegen ...

Ik probeerde doet een soortgelijke wijze door het creëren van de lijst buiten de werkwijze en het incrementeren van een waarde 'x' met toevoeging aan de matrix [i] lijst, maar ik blijf een NullPointerException

Kan iemand me helpen uitzoeken waarom?

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

Bedankt

De vraag is gesteld op 16/03/2015 om 14:43
bron van user
In andere talen...                            


1 antwoorden

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

Je moet eigenlijk initialiseren de array

int[] bstArray=new bstArray[someLength]; <------- like this
then use 
bstArray[x] = node.getValue();
antwoordde op 16/03/2015 om 14:45
bron van user

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