比如一个 [3, 1, 5, 10] 的树,设其根结点为 root, 那么对于函数 hasPathSum(root, 18) 的返回值就是 true。
题目列出的知识点是深度优先搜索,可是我刚明白一点动态规划,所以我考虑的是,符合条件的树枝去掉叶子,剩下节点的和必然等于给定值减去叶子节点。
bool hasPathSum(TreeNode* root, int sum) { if (root == nullptr){ return false; } if (root->left == nullptr && root->right == nullptr && sum == root->val){ return true; } return (hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum - root->val)); }
时间: 2024-10-07 06:32:56