Algorithmspre order traversal

Preorder Traversal — Root, Left, Right

TT
Testlaa Team
May 14, 20261 min read

Preorder prints (or visits) the root before its subtrees—useful for copying trees and building from traversal lists with markers.

Try this in Python

from __future__ import annotations
from dataclasses import dataclass


@dataclass
class TreeNode:
    val: int
    left: TreeNode | None = None
    right: TreeNode | None = None


def preorder(root: TreeNode | None) -> list[int]:
    out: list[int] = []

    def walk(n: TreeNode | None) -> None:
        if not n:
            return
        out.append(n.val)
        walk(n.left)
        walk(n.right)

    walk(root)
    return out

r = TreeNode(1, TreeNode(2, TreeNode(4)), TreeNode(3))
print(preorder(r))

Key takeaways

  • Iterative preorder uses a stack pushing right before left so left is popped first.
  • Know the three traversal orders by heart.
  • Preorder + inorder can uniquely reconstruct if BST assumptions hold.

Tags:

Tree structuresPythonStudents