Le parcours en profondeur (DFS - Depth-First Search) est une méthode d'exploration d'un arbre qui consiste à aller le plus profondément possible dans une branche avant d'explorer les autres branches. C'est comme explorer un labyrinthe en suivant toujours le même mur.
contains
)boolean contains(Node n, int val){
if (n.val==val) return true;
for (Node fils:n.children){
boolean rep = contains(fils, val);
if(rep == true) return true;
}
return false;
}
true
dès qu'une correspondance est trouvéetreeDepth
)int treeDepth(Node n){
if (n.children.size() == 0) return 1;
int maxDepth = 0;
for (Node Fils: n.children)
int d = treeDepth(fils);
if (d > maxDepth) maxDepth = d;
}
return maxDepth + 1;
}
int treeDepth(Node n, int level){
if (n.children.size() == 0) return level;
int maxDepth = 0;
for(Node fils: n.children){
int d = treeDepth(fils, level + 1);
if (d > maxDepth) maxDepth = d;
}
return maxDepth;
}
nbleaves
)int nbleaves(Node n){
if (n.children.size() == 0) return 1;
int nb = 0;
for (Node fils: n.children)
nb += nbleaves(fils);
return nb;
}