Ho le classi BinaryTreeNode (int value) con i relativi child sinistro e destro e BinaryTree (int rootVal) con BinaryTreeNode root con rootVal come valore. ho sviluppato un codice per calcolare il numero di nodi dell'albero (in classe BinaryTreeNode), ma non funziona a causa di un NullPointerException:Determinare la dimensione dell'intero albero binario tramite ricorsione
public int size(){
if(this == null) { // base case
return 0;
} else {
return 1 + left.size() + right.size();
}
}
Tuttavia un'altra soluzione che ho trovato, con una strategia simile, opere :
Ho capito perché il mio codice genera un'eccezione (è perché left/right farebbe riferimento a null). Ma vorrei capire perché la seconda soluzione funziona quasi con lo stesso principio. Grazie in anticipo!
La seconda versione funziona perché non si tenta di chiamare un metodo su null, basta passare null alla funzione. E dal primo se si sa che refNode non è nullo – wastl