LeetCode112——path sum
看到树就有一种本能的畏惧感,水平不足嘛。但是水平不够就越要敢于挑战,本题的意思是找到一条路径,这条路径上的和等于给出的数。这条路径必须是从叶子到根节点的哈。想想,如果从根节点开始找,每次sum减掉val则到了叶子节点的时候,sum肯定等于叶子节点的值。否则,就没有这么一条路径。朴素深搜,好装逼的词!!
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: bool hasPathSum(TreeNode* root, int sum) { if(root == NULL) { return false; } if(root->left == NULL && root->right == NULL) { return sum == root->val; } return hasPathSum(root->left,sum - (root->val)) || hasPathSum(root->right, sum-(root->val)); } };