Java aplicación LeetCode 437 ruta suma III (c)

437. La suma de la trayectoria III

Dado un árbol binario, cada nodo que se almacenan con un valor entero.

Número total de caminos para encontrar el camino y es igual al valor dado.

Ruta de acceso no requiere partir de la raíz, no es necesario para terminar en un nodo hoja, pero la dirección del trazado debe estar hacia abajo (sólo nodo de padres a nodo hijo).

No más de 1000 nodos del árbol binario, y el rango de valor de nodo es [-1000000,1000000] entero.

Ejemplo:

root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8

      10
     /  \
    5   -3
   / \    \
  3   2   11
 / \   \
3  -2   1

Devuelve 3. 8 tienen igual ruta:

1.  5 -> 3
2.  5 -> 2 -> 1
3.  -3 -> 11
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
  public int pathSum(TreeNode root, int sum) {
        int [] nums = new int[1000] ;
        return pathways(root,nums,0,sum);
    }

    private int pathways(TreeNode root,int[]arr,int level,int sum)
    {
        if(root==null)
        {
            return 0 ;
        }
        int n = 0 ;
        arr[level] = root.val ;
        int a = sum ;
        int l = arr.length ;
        for(int j =level;j>=0;j--)
        {
            a -= arr[j] ;
            if(a==0)
            {
                n++;
            }
        }
        return n + pathways(root.left,arr,level+1,sum) + pathways(root.right,arr,level+1,sum);
    }
}
Liberadas 1548 artículos originales · ganado elogios 20000 + · vistas 2,19 millones +

Supongo que te gusta

Origin blog.csdn.net/a1439775520/article/details/104910446
Recomendado
Clasificación