class Solution {
fun hasPathSum(root: TreeNode?, targetSum: Int): Boolean {
if (root == null) return false
return recursiveLogic(root, targetSum, 0)
}
private fun recursiveLogic(node: TreeNode, targetSum: Int, curSum: Int): Boolean {
if (node.right == null && node.left == null) {
return targetSum == (curSum + node.`val`)
}
val leftNode = node.left
if (leftNode != null) {
if (recursiveLogic(leftNode, targetSum, curSum + node.`val`))
return true
}
val rightNode = node.right
if (rightNode != null) {
if (recursiveLogic(rightNode, targetSum, curSum + node.`val`))
return true
}
return false
}
}