Dado un árbol binario, encuentre la ruta donde la suma de cada nodo en todas las rutas es igual al valor objetivo dado.
Una ruta válida se refiere a la ruta desde el nodo raíz hasta el nodo de hoja.
Muestra
Dado un árbol binario y el valor objetivo = 5:
1 / / 2 4 / / 2 3
devolver:
[[1, 2, 2], [1, 4]]
El código es el siguiente:
/** * Definición de treeNode: * public class treeNode { * public int val; * Public treeNode a la izquierda, derecha; * public treeNode (int val) { * this.val = val; * this.left = this.right = null; *} *} */public class Solution {/** * @param Root la raíz del árbol binario * @param Target a Integer * @return Todas las rutas válidas */Lista pública <List <Integer>> BinaryTreePathSum (treeNode root, int Target) {// Escribir su código Herereturn DFS (root, new Araylist <Diseger> (), 0, New, New, New, New, New, New, New, New ArrayList <List <Integer> (), Target);} Public List <List <Integer>> dfs (treeNode root, list <integer> nodo, int sum, list <List <Integer>> rutas, int target) {if (root == null) {return New ArrayList <Integer <ToGerger> ();} List <List <SiGer>> ArrayList <List <Integer> (); if (root.left! = Null) {list <integer> nodos = new ArrayList <Integer> (); if (node! = Null) {nodos.addall (node);} nodos.add (root.val); list <inger>> temp = dfs (root.left, nodos, sum+root.val, rutas, target); if (temp! = null) {rath.addall (temp);}} if (root.right! = null) {list <integer> nodo = new ArrayList <Tiseger> (); if (node! = null) {nodos.addall (nodo);} nodos.add (root.val); list <list <integer>> temp = dfs (root.right, nodos, sum+root.val, raths, target); if (temp! = null) {path.addall (temp);}} if (root.left == null && root.right nodos = new ArrayList <Integer> (); if (node! = null) {nodos.addall (nodo);} nodos.add (root.val); if (sum+root.val == target) {pATY.Add (nodos);} else {path = new ArrayList <List <DinGoger> ();}}referencia
Análisis de código del problema de encontrar la ruta máxima del árbol binario en la programación de Java
Análisis del código de prueba de herencia en Java
Resumir
Lo anterior tiene que ver con los caminos de árboles binarios de Java y ejemplos de código en este artículo, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!