From c5b79e6790343e95aea2e8124560d520a708b280 Mon Sep 17 00:00:00 2001 From: nikhylw <1.nikhil.wani+nikhly@gmail.com> Date: Mon, 4 May 2026 22:44:00 +0530 Subject: [PATCH] add sum_root_to_leaf solution --- W4_2_sum_root_to_leaf.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 W4_2_sum_root_to_leaf.py diff --git a/W4_2_sum_root_to_leaf.py b/W4_2_sum_root_to_leaf.py new file mode 100644 index 00000000..840ffb0c --- /dev/null +++ b/W4_2_sum_root_to_leaf.py @@ -0,0 +1,31 @@ +# Definition for a binary tree node. +# class TreeNode: +# def __init__(self, val=0, left=None, right=None): +# self.val = val +# self.left = left +# self.right = right + +class Solution: + def sumNumbers(self, root: Optional[TreeNode]) -> int: + self.result = 0 + self.helper(root, 0) + return self.result + + def helper(self, root, curr_sum): + #base + if root == None: + return + + #logic + curr_sum = curr_sum * 10 + root.val + + self.helper(root.left, curr_sum) + self.helper(root.right, curr_sum) + + # Check if current node if leaf + if root.right == None and root.left == None: + self.result = self.result + curr_sum + +# Time complexity: O(N), where N is number of nodes in the tree +# Space compexity: O(H), worst case O(N) - h is the height of the tree +