diff --git a/trees/bt_preorder.py b/trees/bt_preorder.py index 396e53b..352cc05 100644 --- a/trees/bt_preorder.py +++ b/trees/bt_preorder.py @@ -8,4 +8,20 @@ def preorder(root) -> list: return [] return [root.val] + preorder(root.left) + preorder(root.right) + +def preorder_iterative(root) -> list: + + result = [] + stack = [root] + + while stack: + + node = stack.pop() + + if node: + result.append(node.val) + stack.append(node.right) # not the order + stack.append(node.left) + + return result