From cf170e3d57eb713f8e793a38ee9e96a403f26121 Mon Sep 17 00:00:00 2001 From: bt3gl <138340846+bt3gl-cryptographer@users.noreply.github.com> Date: Tue, 8 Aug 2023 13:23:11 -0700 Subject: [PATCH] Update bt_bfs.py --- trees/bt_bfs.py | 48 +++++++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/trees/bt_bfs.py b/trees/bt_bfs.py index df01479..f5d37c2 100644 --- a/trees/bt_bfs.py +++ b/trees/bt_bfs.py @@ -3,29 +3,39 @@ # author: bt3gl -def level_order(root: Optional[Node]) -> list[list[int]]: +def bfs_iterative(root) -> list: + + result = [] + queue = collections.deque([root]) if root is None: - return [] - - queue = collections.deque() - queue.append(root) - result = [] + return result while queue: - - this_level = [] - - for _ in range(len(queue)): + + node = queue.popleft() - current = queue.popleft() - - if current: - this_level.append(current.val) - queue.append(current.left) - queue.append(current.right) - - if this_level: - result.append(this_level) + if node: + result.append(node.val) + queue.append(node.left) + queue.append(node.right) return result + + +def bfs_recursive(root) -> list: + + result = [] + if root is None: + return root + + def helper(node): + + if node: + result.append(node.val) + helper(node.left) + helper(node.right) + + helper(root) + return result +