less than 1 minute read

Binary Tree Traversals

Tree-Traversals.jpeg

Inorder Traversal

Recursive

Code:

ans = []    # To store values
def inorder(root):
    if root:
        inorder(root.left)
        ans.append(root.val)
        inorder(root.right)

inorder(root)   # Function call
return ans      # Return outputs

Iterative

Code:

ans = []
stack = []
curr = root
while True:
    if curr is not None:
        stack.append(curr)
        curr = curr.left
    elif stack:
        curr = stack.pop()
        ans.append(curr.val)
        curr = curr.right
    else:
        break

return ans      # Return outputs