Lesson 2 of 14

Inorder Traversal

Inorder Traversal

Tree traversal means visiting every node in a defined order. There are three classic traversal orders — inorder, preorder, and postorder — each with different uses.

Inorder: left subtree → current node → right subtree

        4
       / \
      2   6
     / \ / \
    1  3 5  7

Inorder visits: 1 2 3 4 5 6 7

For a Binary Search Tree, inorder traversal always yields values in sorted ascending order.

Implementation

Inorder traversal is naturally recursive:

void inorder(struct Node *root) {
    if (root == NULL) return;
    inorder(root->left);
    printf("%d\n", root->val);
    inorder(root->right);
}

The base case (root == NULL) handles empty subtrees — when a node has no left or right child, those recursive calls return immediately.

Your Task

Implement void inorder(struct Node *root) that prints each node's value on its own line, visiting left subtree, then root, then right subtree.

TCC compiler loading...
Loading...
Click "Run" to execute your code.