In-Order Traversal

Recursion:

inorder(root.left) + [root.val] + inorder(root.right) if root else []

Iteration:

stack = []
traversal = []
while stack or root:
    while root:
        stack.append(root)
        root = root.left
    root = stack.pop()
    traversal.append(root.val)
    root = root.right