Dada uma árvore binária, encontre o caminho em que a soma de cada nó em todos os caminhos é igual ao valor alvo fornecido.
Um caminho válido refere -se ao caminho do nó raiz para o nó foliar.
Amostra
Dada uma árvore binária e o valor alvo = 5:
1 / / 2 4 / / 2 3
retornar:
[[1, 2, 2], [1, 4]]
O código é o seguinte:
/** * Definição de Treenode: * Public class Treenode { * public int val; * Treenode público para a esquerda, direita; * public Treenode (int val) { * this.val = val; * this.left = this.right = null; *} *} */public classe Solução {/** * @param root a raiz da árvore binária * @param alvo um número inteiro * @return Todos os caminhos válidos */list public <Lista <Teger>> binaryTreepathsum (newlist raiz, int alvo) {// write herereturn dfs (root, sweadnist <pin raiz, <p, Int Target) {// write herereturn dfs (root, staylist < ArrayList <LIST <TEGER> (), Target);} Lista pública <LIST <INTEGER>> DFS (Treenode Root, List <Teger> nó, int soma, lista <List <Teger>> Paths, int Target) {if (root == NULL) {Return New Lista <lister> <Integer> (); ArrayList <LIST <TEGER>> (); if (root.left! = Null) {list <Teger> nós = new ArrayList <Teger> (); se (node! = Null) {sodes.addall (node);} nós.add (root.val); list <intereger >> temp = dfs (root.left, nós, soma+root.val, caminhos, destino); if (temp! = null) {path.addall (temp);}} if (root.right! {Sodes.addall (nó);} nós.add (root.val); list <list <teger>> temp = dfs (root.right, nós, soma+root.val, caminhos, alvo); if (temp! ArrayList <Teger> (); if (node! = Null) {sodes.addall (nó);} nós.add (root.val); if (sum+root.val == Target) {path.add (nós);} else {path = new Arraylist <list <integer >> ();referência
Análise de código do problema de encontrar o caminho máximo da árvore binária na programação Java
Análise de código de teste de herança em java
Resumir
O exposto acima é sobre caminhos de árvores binárias Java e exemplos de código neste artigo, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!