Loading

Quipoin Menu

Learn • Practice • Grow

data-structure-with-java / Tree Traversals
tutorial

Tree Traversals

Tree traversal means visiting every node in a specific order. There are three main depth-first traversals: inorder, preorder, and postorder.

1. Inorder Traversal (Left, Root, Right)
Visits left subtree, then node, then right subtree. For BST, this yields nodes in sorted order.


public void inorder(TreeNode root) {
if (root == null) return;
inorder(root.left);
System.out.print(root.val + " ");
inorder(root.right);
}

2. Preorder Traversal (Root, Left, Right)
Visits node, then left subtree, then right subtree. Used for copying a tree.


public void preorder(TreeNode root) {
if (root == null) return;
System.out.print(root.val + " ");
preorder(root.left);
preorder(root.right);
}

3. Postorder Traversal (Left, Right, Root)
Visits left, right, then node. Used for deleting a tree (children before parent).


public void postorder(TreeNode root) {
if (root == null) return;
postorder(root.left);
postorder(root.right);
System.out.print(root.val + " ");
}
Two Minute Drill
  • Inorder: left → node → right. Sorted order for BST.
  • Preorder: node → left → right. Used for copying.
  • Postorder: left → right → node. Used for deletion.
  • All are O(n) time and O(h) stack space (recursive).

Need more clarification?

Drop us an email at career@quipoinfotech.com