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: