题目:在二叉树里找到一条从叶子到根的通路,使其各结点和为指定的数。
分析:dfs深搜的简单题目。感觉好神奇啊。
答案:
class Solution {
public:
bool hasPathSum(TreeNode *root, int sum) {
return dfs(root, sum, 0);
}
private:
bool dfs(TreeNode *node, int sum, int currentSum)
{
if (node == NULL)
return false;
if (node->left == NULL && node->right == NULL)// is leaf node
return ((currentSum + node->val) == sum);
return(dfs(node->left, sum, currentSum + node->val) || dfs(node->right, sum, currentSum + node->val) );
}
};