问你这棵树有没有哪条从root到leaf的路径,是满足路径上的节点加总起来等於targetsum的?
呃,用Traversal,然後在找到leaf的时候,检查此时的sum有没有满足,有就return true,没有就要往上扣回到有另外一条路的部分
class Solution {
public:
bool hasPathSum(TreeNode* root, int targetSum) {
return findPath(root, targetSum, 0);
}
private:
bool findPath(TreeNode* curr, int targetSum, int currSum) {
if (curr == NULL)
return false;
if (curr->left == NULL && curr->right == NULL)
return currSum + curr->val == targetSum? true:false;
return findPath(curr->left, targetSum, currSum+curr->val) || \
findPath(curr->right, targetSum, currSum+curr->val);
}
};
只要在判断时没有真的加上去,就不用处理扣回来的问题
参考:
https://leetcode.com/problems/path-sum/discuss/1515918/C%2B%2B-beats-88-DFS
<<: D29 - 彭彭的课程# Python Pandas 资料分析 - 基础教学
>>: 30天打造品牌特色电商网站 Day.29 网站SEO优化
或许有人会说:「离职前就给他摆烂,什麽都不要做,以後主管打电话来讨档案,也不要接,反正我不在这间公司...
💡 开始使用 Git 之前,我们需要先设定使用者名称及电子邮件地址。 为什麽需要设定用户名称及 E-...
从 2018 年介绍 Vue 的 UI Framework — Quasar ,到前年的 LINE ...
起初刚学到设定颜色时,都是使用background-color来帮物件或是背景上色 於是在学到 gr...
上一篇提到了TiDB的特色之一,便是实践了HTAP。那HTAP又是什麽东西? HTAP全名Hybri...