Path Sum | LeetCode | Java

Path Sum | LeetCode | Java

According to the problem we have to find the sum from every root-to-leaf path and check whether it is equal to the targetSum.
So, the intuitive code will be

class Solution {
public boolean hasPathSum(TreeNode root, int targetSum) {
return pathSum(root, 0, targetSum);
}

boolean pathSum(TreeNode node, int sum, int targetSum){
if(node==null)
return false;

sum += node.val;

if(sum==targetSum)
return true;

return pathSum(node.left, sum, targetSum) || pathSum(node.right, sum, targetSum);

}
}

Verdict : 100 / 117 test cases passed.

Hidden test case gives the clear picture of the entirety of the question.

Our sum should not be just based on node value but root-to-leaf path.
After reaching the leaf node only are we allowed to take the sum of it.
So, the code modifies slightly.

class Solution {
public boolean hasPathSum(TreeNode root, int targetSum) {
return pathSum(root, 0, targetSum);
}

boolean pathSum(TreeNode node, int sum, int targetSum){
if(node==null)
return false;

sum += node.val;

//we are adding the condition to identify leaf node. If node.left and node.right==null indicates the “Leaf Node”

if(node.left==null && node.right==null && sum==targetSum)
return true;

return pathSum(node.left, sum, targetSum) || pathSum(node.right, sum, targetSum);

}
}

Thanks for reading🥰.
Feel free to comment🖌️ and like the post💓
Follow for more 🤝 && Happy Coding🚀👩‍💻

Don’t forget to check-out my other socials😍:
Github
Hashnode
Medium
Twitter(X)

Leave a Reply

Your email address will not be published. Required fields are marked *