From 848ad18c8f0ae3a35675f00d765523f008a0aca7 Mon Sep 17 00:00:00 2001 From: Megha Raykar Date: Thu, 12 Mar 2026 00:34:54 -0700 Subject: [PATCH 1/3] Problem1 added --- Problem1.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Problem1.py diff --git a/Problem1.py b/Problem1.py new file mode 100644 index 00000000..974236ce --- /dev/null +++ b/Problem1.py @@ -0,0 +1,39 @@ +# https://leetcode.com/problems/binary-tree-level-order-traversal/ + +# BFS solution +# Time Complexity: O(n) +# Space Complexity: O(h) +# Did this code successfully run on Leetcode : Yes +# Any problem you faced while coding this : No + +# 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 levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: + if not root: + return [] + q = deque() + res = [] + + q.append(root) + while len(q) > 0: + size = len(q) + new_list = [] + + for i in range(size): + qroot = q.popleft() + new_list.append(qroot.val) + + if qroot.left is not None: + q.append(qroot.left) + + if qroot.right is not None: + q.append(qroot.right) + + res.append(new_list) + + return res \ No newline at end of file From 1f63444456b5a3a285b7a959a2feedfd8c963478 Mon Sep 17 00:00:00 2001 From: Megha Raykar Date: Sat, 14 Mar 2026 18:07:27 -0700 Subject: [PATCH 2/3] Problem2 added --- Problem1.py | 31 ++++++++++++++++++++++++++++++- Problem2.py | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 Problem2.py diff --git a/Problem1.py b/Problem1.py index 974236ce..a89fef8f 100644 --- a/Problem1.py +++ b/Problem1.py @@ -36,4 +36,33 @@ def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: res.append(new_list) - return res \ No newline at end of file + return res + + +# DFS Solution + +# 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 levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: + if not root: + return [] + self.res = [] + self.helper(root, 0) + return self.res + + def helper(self, root, depth): + if root is None: + return + if depth == len(self.res): + new_list = [] + self.res.append(new_list) + + self.res[depth].append(root.val) + + self.helper(root.left, depth + 1) + self.helper(root.right, depth + 1) \ No newline at end of file diff --git a/Problem2.py b/Problem2.py new file mode 100644 index 00000000..3741dfe1 --- /dev/null +++ b/Problem2.py @@ -0,0 +1,38 @@ +# https://leetcode.com/problems/course-schedule/description/ + +# Time Complexity: O(n) +# Space Complexity: O(n) + +class Solution: + def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool: + q = deque() + adj_list = defaultdict(list) + indegrees = [0] * numCourses + count = 0 + + for item in prerequisites: + indegrees[item[0]] += 1 + adj_list[item[1]].append(item[0]) + + for i in range(len(indegrees)): + if indegrees[i] == 0: + q.append(i) + count += 1 + + while q: + qroot = q.popleft() + popped_list = adj_list[qroot] + for i in popped_list: + indegrees[i] = indegrees[i] - 1 + if indegrees[i] == 0: + q.append(i) + count += 1 + + if count != numCourses: + return False + + # for i in indegrees: + # if i != 0: + # return False + + return True \ No newline at end of file From 258838fc32646890e40abb801491f94034d68309 Mon Sep 17 00:00:00 2001 From: Megha Raykar Date: Sat, 14 Mar 2026 19:00:25 -0700 Subject: [PATCH 3/3] comment added --- Problem2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Problem2.py b/Problem2.py index 3741dfe1..bdbc5f11 100644 --- a/Problem2.py +++ b/Problem2.py @@ -1,6 +1,6 @@ # https://leetcode.com/problems/course-schedule/description/ -# Time Complexity: O(n) +# Time Complexity: O(V+E) # Space Complexity: O(n) class Solution: