Implementación de JavaScript "Todas las rutas del árbol binario"

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;
};

Supongo que te gusta

Origin blog.csdn.net/qq_42101569/article/details/126567034
Recomendado
Clasificación