题解 | #二叉树中和为某一值的路径(一)#
二叉树中和为某一值的路径(一)
https://www.nowcoder.com/practice/508378c0823c423baa723ce448cbfd0c
- 递归 + 回溯
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { public: /** * * @param root TreeNode类 * @param sum int整型 * @return bool布尔型 */ bool hasPathSum(TreeNode* root, int sum) { if (root == nullptr) return false; return traversal(root, sum - root->val); } bool traversal(TreeNode* node, int count) { // 到达叶子节点 if (node->left == nullptr && node->right == nullptr && count == 0) { return true; } if (node->left == nullptr && node->right == nullptr && count != 0) { return false; } if (node->left) { count -= node->left->val; // 向上返回 if (traversal(node->left, count)) { return true; } count += node->left->val; // 回溯 } if (node->right) { count -= node->right->val; // 向上返回 if (traversal(node->right, count)) { return true; } count += node->right->val; // 回溯 } return false; } };
2023-剑指-二叉树 文章被收录于专栏
2023-剑指-二叉树