द्विआधारी खोज वृक्ष में आदेश Traversal एक नई सरणी के लिए

वोट
1

मैं जबकि एक व्यायाम के रूप कंसोल के लिए प्रिंट एक में से आदेश BST ट्रेवर्सल किया है, लेकिन काम यह एक नई सूची में जोड़ने के लिए था ...

मैं विधि के बाहर सूची सारणी को बनाने और [i] सूची में जोड़ने, जबकि एक मूल्य के 'एक्स' incrementing द्वारा यह एक समान तरीके से कर रही है की कोशिश की लेकिन मैं एक NullPointerException बार आ रही है

किसी को भी मुझे यह पता लगाने क्यों मदद कर सकते हैं?

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

धन्यवाद

16/03/2015 को 14:43
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
5
int[] bstArray;  <-------- This line does not create the Array

आप वास्तव में करने की जरूरत है प्रारंभ सरणी

int[] bstArray=new bstArray[someLength]; <------- like this
then use 
bstArray[x] = node.getValue();
16/03/2015 को 14:45
का स्रोत उपयोगकर्ता

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