Ho fatto questo metodo ricorsivo che calcola il percorso più lungo in un albero binario. il percorso è stato archiviato in un arralist e poi restituito. tuttavia, ho dovuto dichiarare la variabile della lista della matrice globale. è possibile fare questo metodo ma la sua variabile di lista di matrice è locale.come rendere locale una variabile
public static <T> ArrayList<T> longestPath(BinaryNode<T> root){
//ArrayList path = new ArrayList();
if(root == null) return null;
if(height(root.left) > height(root.right)){
path.add(root.element);
longestPath(root.left);
}else{
path.add(root.element);
longestPath(root.right);
}
return path;
}
La ragione per cui ho dovuto fare è globale è perché il suo un programma ricorsivo e ogni volta che si chiamano creerà una nuova variabile oggetto lista di array con l'indirizzo differenza se sai cosa voglio dire.
Non ci sono variabili globali in Java ...? –
@RichardJPLeGuen: quasi certamente intendeva un campo 'statico'. –