题意 给出一棵二叉树,判断是否存在一条从根到叶子的路径,使得这条路径上所有节点上的 val 的和与给出的 sum 相等。 难度 Easy 解题思路 一道经典的深度优先搜索题,复杂度为 O(v+e)。 源代码 class Solution { public: bool hasPathSum(TreeNode* root, int sum) { return dfs(root, 0, sum); } bool dfs(TreeNode* root, int sum, const int &target) { if (root) { sum += root->val; if (!root->left && !root->right) { if (sum == target) return true; else return false; } else { return dfs(root->left, sum, target) || dfs(root->right, sum, target); } } return false; } };