From 085681459691ba2feef8e8cbe25ba7171a05fe83 Mon Sep 17 00:00:00 2001 From: Y SrinivasaSupreeth Date: Sat, 31 Jan 2026 17:38:36 +0530 Subject: [PATCH] My_sols --- leetcode_106.py | 20 ++++++++++++++++++++ leetcode_129.py | 14 ++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 leetcode_106.py create mode 100644 leetcode_129.py diff --git a/leetcode_106.py b/leetcode_106.py new file mode 100644 index 00000000..5ebdcec7 --- /dev/null +++ b/leetcode_106.py @@ -0,0 +1,20 @@ +class Solution: + def buildTree(self, inorder: List[int], postorder: List[int]) -> Optional[TreeNode]: + idx = {val: i for i, val in enumerate(inorder)} + self.post_idx = len(postorder) - 1 + + def helper(left, right): + if left > right: + return None + + root_val = postorder[self.post_idx] + self.post_idx -= 1 + root = TreeNode(root_val) + + mid = idx[root_val] + + # build right subtree first + root.right = helper(mid + 1, right) + root.left = helper(left, mid - 1) + + return root \ No newline at end of file diff --git a/leetcode_129.py b/leetcode_129.py new file mode 100644 index 00000000..54497c31 --- /dev/null +++ b/leetcode_129.py @@ -0,0 +1,14 @@ +class Solution: + def sumNumbers(self, root: Optional[TreeNode]) -> int: + def dfs(node, curr): + if not node: + return 0 + + curr = curr * 10 + node.val + + if not node.left and not node.right: + return curr + + return dfs(node.left, curr) + dfs(node.right, curr) + + return dfs(root, 0) \ No newline at end of file