题解 | #二叉树中和为某一值的路径(三)#
二叉树中和为某一值的路径(三)
https://www.nowcoder.com/practice/965fef32cae14a17a8e86c76ffe3131f
class Solution {
public:
int FindPath(TreeNode* root, int sum, bool allowBreak) {
if (!root) return 0;
int count = sum == root->val ? 1 : 0;
if (!root->left && !root->right) {
return count;
}
auto left = root->left;
if (left) {
if (allowBreak) {
count += FindPath(left, sum, true);
}
count += FindPath(left, sum - root->val, false);
}
auto right = root->right;
if (right) {
if (allowBreak) {
count += FindPath(right, sum, true);
}
count += FindPath(right, sum - root->val, false);
}
return count;
}
int FindPath(TreeNode* root, int sum) {
return FindPath(root, sum, true);
}
};
查看15道真题和解析