class Solution {
public:
int getSum(vector<int> path)
{
int sum = 0;
for (int i = 0; i < path.size(); i++)
sum += path[i];
return sum;
}
void traversal(bool & flag, TreeNode* root, vector<int>& path, int targetSum)
{
path.push_back(root->val);
//叶子结点
if (root->left == nullptr && root->right == nullptr)
{
if (targetSum == getSum(path))
flag = true;
return;
}
//
if (root->left)
{
traversal(flag, root->left, path, targetSum);
path.pop_back();
}
if (root->right)
{
traversal(flag, root->right, path, targetSum);
path.pop_back();
}
}
bool hasPathSum(TreeNode* root, int targetSum) {
vector<int> path;
bool flag = false;
if (root == nullptr)
return false;
traversal(flag, root, path, targetSum);
if (flag)
return true;
else
return false;
}
};
LeetCode112. 路径总和
最新推荐文章于 2024-07-18 10:23:21 发布