Étant donné un arbre binaire, trouvez le chemin où la somme de chaque nœud dans tous les chemins est égale à la valeur cible donnée.
Un chemin valide fait référence au chemin du nœud racine au nœud feuille.
Échantillon
Étant donné un arbre binaire et la valeur cible = 5:
1 / / 2 4 / / 2 3
retour:
[[1, 2, 2], [1, 4]]
Le code est le suivant:
/ ** * Définition de Treenode: * classe publique Treenode {* public int Val; * Public Treenode à gauche, à droite; * public Treenode (int Val) {* this.val = val; * this.left = this.right = null; *} *} * / solution de classe publique {/ ** * @param root la racine de l'arbre binaire * @param cible un entier * @return tous les chemins valides * / public list <list <Integer>> binaryTreepathSum (Treenode root, int cible) {// écrivez votre code Herereturn (root, nouveau ArrayList <Integer> (), 0, nouveau, new ArrayList <st List <Integer> (), Target);} public List <List <Integer>> DFS (Treenode Root, List <Integer> Node, int sum, list <list <Integer>> paths, int cible) {if (root == null) {return New ArrayList <list <integ ArrayList <list <Integer >> (); if (root.left! = Null) {list <Integer> nœuds = new ArrayList <Integer> (); if (node! = Null) {nœuds.addall (nœud);} nœuds.add (root.val); list <stleger>> temp = dfs (root.left, nœuds, sum + root.val, chemins, cible); if (temp! = null) {path.addall (temp);}} if (root.Right! = null) {list <nteger> nœuds = new ArrayList <Integer> (); if (nœud! = null) gens nœuds = new ArrayList <Integer> (); if (node! = null) {nœuds.addall (node);} nœuds.add (root.val); if (sum + root.val == Target) {path.add (nœuds);} else {path = new ArrayList <list <nteger>> ();}} return pathred;}}}référence
Analyse du code du problème de la recherche du chemin maximum de l'arbre binaire dans la programmation Java
Analyse du code de test de succession dans Java
Résumer
Ce qui précède est tout au sujet des chemins d'arbres binaires Java et des exemples de code dans cet article, j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!