diff --git a/data_structures/binary_tree/data_structures/binary_tree/binary_tree_path_sum.py b/data_structures/binary_tree/data_structures/binary_tree/binary_tree_path_sum.py index 8b137891791f..e156eac2e207 100644 --- a/data_structures/binary_tree/data_structures/binary_tree/binary_tree_path_sum.py +++ b/data_structures/binary_tree/data_structures/binary_tree/binary_tree_path_sum.py @@ -1 +1,22 @@ + class Solution: + def pathSum(self, root: TreeNode, sum: int) -> int: + global result + result = 0 + + def dfs(node, target): + if node is None: return + find_path_from_node(node, target) + dfs(node.left, target) + dfs(node.right, target) + + def find_path_from_node(node, target): + global result + if node is None: return + if node.val == target: result += 1 + find_path_from_node(node.left, target-node.val) + find_path_from_node(node.right, target-node.val) + + dfs(root, sum) + + return result