A way of traversing a tree that processes the current node before processing the left and right subtrees. This is a depth-first algorithm, and can be compared to inorder traversal and postorder traversal.

Generally speaking, this is the most useful of the depth-first searches in terms of search, as a node is processed before either subtree is recursively searched.