LeetCode :. 112 Camino del trayecto total suma (lenguaje C)

Descripción Título:
Dado un árbol binario y un destino y determina si existe el nodo raíz hasta el nodo de hoja en la trayectoria de árbol, todos los nodos en esta ruta, e igual al valor objetivo, se añade.

Descripción: nodo hoja es un nodo no tiene nodos secundarios.

Ejemplo:
Dado el siguiente árbol binario, y el objetivo y la suma = 22,

      5
     / \
    4   8
   /   / \
  11  13  4
 /  \      \
7    2      1

Devuelve true, porque la presencia de la ruta de destino y el nodo raíz hasta el nodo de hoja 22 5-> 4-> 11-> 2.

Fuente: estancia botón (LeetCode)
enlace: https: //leetcode-cn.com/problems/path-sum
propiedad de la deducción de todas las redes. reimpresión comercial póngase en contacto con la reimpresión autorizada oficial, no comercial por favor indique la fuente.
Respuesta:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */


bool func(struct TreeNode* root, int cur, int sum)
{
    if(NULL == root) return false;
    
    cur = cur + root->val;
    
    if(NULL == root->left && NULL == root->right)
    {
        if(sum == cur) return true;
    }

    return func(root->left, cur, sum) || func(root->right, cur, sum);
}

bool hasPathSum(struct TreeNode* root, int sum)
{   
    int cur = 0;
    return func(root,cur,sum);
}

El resultado:

Aquí Insertar imagen Descripción

Publicados 157 artículos originales · ganado elogios 119 · vistas 260 000 +

Supongo que te gusta

Origin blog.csdn.net/wangqingchuan92/article/details/104779571
Recomendado
Clasificación