EPI 9.7
This problem is from elements of programming interviews.
Write an inorder traversal without recursion.
In [7]:
class Node:
    def __init__(self,val,left=None,right=None):
        self.val=val
        self.left=left
        self.right=right
        
def inorder_traversal(tree:Node):
    stk=[]
    currNode=tree
    result=[]
    while True:
        while currNode:
            stk.append(currNode)
            currNode=currNode.left
        
        currNode = stk.pop()
        result.append(currNode.val)
        currNode=currNode.right
        if not stk and currNode is None:
            break
    return result
tree=Node(3,Node(4),Node(1,Node(4,Node(7))))
inorder_traversal(tree)
Out[7]:
Comments
Comments powered by Disqus