Leetcode112. 路径总和(C语言)
数据结构-树:算法与数据结构参考
题目:
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。例:
输入:[5,4,8,11,null,13,4,7,2,null,null,null,1] 22
输出:true
思路:
递归
代码:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool hasPathSum(struct TreeNode* root, int sum){
if(!root) return false;
if(root->val==sum && !root->left && !root->right) return true;
return hasPathSum(root->left,sum-root->val) || hasPathSum(root->right,sum-root->val);
}