Tema Descripción
Dado el nodo raíz de un árbol binario, devolver todas las rutas desde el nodo raíz hasta los nodos hoja, en cualquier orden. Un nodo hoja es un nodo que no tiene nodos secundarios.
Ejemplo 1:
Entrada: root = [1,2,3,null,5]
Salida: ["1->2->5","1->3"]
Ejemplo 2:Entrada: raíz = [1]
Salida: ["1"]pista:
El número de nodos en el árbol está en el rango [1, 100]
-100 <= Node.val <= 100
ideas para resolver problemas
Determine si los nodos izquierdo y derecho del nodo actual están vacíos. Si está vacío, significa que el nodo es un nodo hoja. Agregue la ruta al resultado. Si el nodo actual no es un nodo hoja, recorra recursivamente su izquierda y subárboles derechos.
el código
var binaryTreePaths = function(root) {
const paths = [];
const construct_paths = (root, path) => {
if (root) {
path += root.val.toString();
if (root.left === null && root.right === null) { // 当前节点是叶子节点
paths.push(path); // 把路径加入到答案中
} else {
path += "->"; // 当前节点不是叶子节点,继续递归遍历
construct_paths(root.left, path);
construct_paths(root.right, path);
}
}
}
construct_paths(root, "");
return paths;
};