题解 | #二叉树中和为某一值的路径(三)#
二叉树中和为某一值的路径(三)
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); } };