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 new file mode 100644 index 000000000000..e156eac2e207 --- /dev/null +++ b/data_structures/binary_tree/data_structures/binary_tree/binary_tree_path_sum.py @@ -0,0 +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