diff --git a/112. Path Sum.md b/112. Path Sum.md new file mode 100644 index 0000000..0108682 --- /dev/null +++ b/112. Path Sum.md @@ -0,0 +1,17 @@ +# [112. Path Sum](https://leetcode.com/problems/path-sum/description/) +# 思路 +根据题意,若树空则肯定是false,若非空,则: +* 若没有左右子树(叶子),判断其值是否满足条件; +* 否则,递归判断其左右子树是否满足,只要有一个满足即满足(即或操作)。 + +# C++ +``` C++ +class Solution { +public: + bool hasPathSum(TreeNode* root, int sum) { + if(root == NULL) return false; + if(root -> left == NULL && root -> right == NULL && sum == (root -> val)) return true; // 叶子节点 + return hasPathSum(root -> left, sum - (root -> val)) || hasPathSum(root -> right, sum - (root -> val)); + } +}; +```