LeetCode112 Path Sum
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. (Easy)
For example:
Given the below binary tree and sum = 22
,
5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1
return true, as there exist a root-to-leaf path 5->4->11->2
which sum is 22.
分析:
还是用递归的思路,可以把sum - root -> val用在递归函数中,这样写最简洁。
代码:
1 class Solution { 2 public: 3 bool hasPathSum(TreeNode* root, int sum) { 4 if(root == nullptr) { 5 return false; 6 } 7 if(root -> right == nullptr && root -> left == nullptr) { 8 return sum == root->val; 9 } 10 return hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum - root->val) ; 11 } 12 };