Concept Flow - Tree Traversal Inorder Left Root Right
Start at root node
Traverse left subtree
Visit current node (root)
Traverse right subtree
End
Inorder traversal visits the left subtree first, then the root node, and finally the right subtree.
void inorder(Node node) {
if (node == null) return;
inorder(node.left);
System.out.print(node.data + " ");
inorder(node.right);
}| Step | Operation | Node Visited | Pointer Changes | Tree State (Visual) |
|---|---|---|---|---|
| 1 | Start at root | 10 | current = root(10) | 10 / \ 5 15 |
| 2 | Traverse left subtree | 5 | current = 5 | 10 / \ 5 15 |
| 3 | Traverse left subtree | null | current = null (left of 5) | 10 / \ 5 15 |
| 4 | Return from null | null | back to 5 | 10 / \ 5 15 |
| 5 | Visit node | 5 | print 5 | 10 / \ 5 15 |
| 6 | Traverse right subtree | null | current = null (right of 5) | 10 / \ 5 15 |
| 7 | Return from null | null | back to 10 | 10 / \ 5 15 |
| 8 | Visit node | 10 | print 10 | 10 / \ 5 15 |
| 9 | Traverse right subtree | 15 | current = 15 | 10 / \ 5 15 |
| 10 | Traverse left subtree | null | current = null (left of 15) | 10 / \ 5 15 |
| 11 | Return from null | null | back to 15 | 10 / \ 5 15 |
| 12 | Visit node | 15 | print 15 | 10 / \ 5 15 |
| 13 | Traverse right subtree | null | current = null (right of 15) | 10 / \ 5 15 |
| 14 | Return from null | null | back to root, traversal done | 10 / \ 5 15 |
| Variable | Start | After Step 2 | After Step 5 | After Step 8 | After Step 12 | Final |
|---|---|---|---|---|---|---|
| current | root(10) | 5 | 5 | 10 | 15 | null |
| printed_nodes | [] | [] | [5] | [5,10] | [5,10,15] | [5,10,15] |
Inorder Tree Traversal (Left, Root, Right): - Visit left subtree recursively - Visit current node (print data) - Visit right subtree recursively - Produces nodes in ascending order for BST - Base case: node == null returns immediately
root?4 / \ 2 5 / \ 1 3
void inorder(Node root) {
if(root == null) return;
inorder(root.right);
System.out.print(root.data + " ");
inorder(root.left);
}Pass the test and this pattern moves unknown