---
tags: data_structure_python
---
# Path Sum <img src="https://img.shields.io/badge/-easy-brightgreen">
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.
**Note:** A leaf is a node with no children.
<ins>**Example:**</ins>
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.
## Solution
```python=
# Definition for a binary tree node.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def hasPathSum(self, root: TreeNode, sum: int) -> bool:
# DFS.
if root is None:
return False
elif root.left is None and root.right is None:
return sum - root.val == 0
return self.hasPathSum(root.left, sum - root.val) or
self.hasPathSum(root.right, sum - root.val)
```