/ / Comment parcourir de manière récursive un arbre de recherche binaire, en ajoutant chaque noeud à une ArrayList [closed] - java, algorithme, récursivité

Comment parcourir de manière récursive un arbre de recherche binaire, en ajoutant chaque noeud à une ArrayList [closed] - java, algorithme, récursivité

J'écris une méthode pour parcourir une recherche binairearbre récursivement. Il visitera tous les nœuds et, ce faisant, les ajoutera à une liste de tableaux. Donc, au moment où tous les nœuds sont visités, ils seront dans la liste de tableaux.

J’ai écrit ce qui suit, mais cela ne fonctionne pas et je ne comprends pas pourquoi.

Toute aide ici serait très appréciée.

Méthode comme suit:

/**
* Traverse a Binary Search Tree and append each node to an ArrayList.
*
* @param n - this.root of the Binary Search Tree
* @return - a ListArray of ALL nodes in the calling Binary Search Tree
*/
private List<TreeNode> traverse( TreeNode n ) {

List<TreeNode> listOfNodes = new ArrayList<TreeNode>();

if (n == null)
return listOfNodes;

listOfNodes.add(n);

traverse(n.left);
traverse(n.right);

return listOfNodes;

}

Merci beaucoup.

Réponses:

2 pour la réponse № 1

Dans tous les cas, vous avez presque trouvé la solution, mais vous n'utilisez pas le résultat de vos appels récursifs. Quand vous appelez traverse(n.left) et traverse(n.right) vous devez ajouter le résultat de ces appels à votre listOfNodes