diff --git a/trees/bt_inorder.py b/trees/bt_inorder.py index 619f1c2..6a955cf 100644 --- a/trees/bt_inorder.py +++ b/trees/bt_inorder.py @@ -2,6 +2,7 @@ # -*- coding: utf-8 -*- # author: bt3gl + def inorder(root) -> list: if root is None: @@ -9,3 +10,22 @@ def inorder(root) -> list: return inorder(root.left) + [root.val] + inorder(root.right) + +def inorder_iterative(root) -> list: + + result = [] + stack = [] + node = root + + while stack or node: + + if node: + stack.append(node) + node = node.left + else: + node = stack.pop() + result.append(node.val) + node = node.right + + return result +