Mental Model
Visit the left side first, then the middle, then the right side in a tree.
Analogy: Like reading a book where you first look at the left page, then the center page, then the right page.
2 / \ 1 3 ↑root
2 / \ 1 3 ↑root
2 / \ [1] 3 ↑curr at 1
Visited: 1
2
/ \
1 3
↑curr back to 2Visited: 1 2
2
/ \
1 3
↑curr moves right2 / \ 1 [3] ↑curr at 3
Visited: 1 2 3
2
/ \
1 3
Traversal complete1 -> 2 -> 3 -> null
class TreeNode { constructor(val, left = null, right = null) { this.val = val; this.left = left; this.right = right; } } function inorderTraversal(root) { const result = []; function traverse(node) { if (node === null) return; // base case: no node traverse(node.left); // visit left subtree result.push(node.val); // visit root traverse(node.right); // visit right subtree } traverse(root); return result; } // Driver code const root = new TreeNode(2, new TreeNode(1), new TreeNode(3)); const output = inorderTraversal(root); console.log(output.join(' -> ') + ' -> null');
if (node === null) return; // base case: no nodetraverse(node.left); // visit left subtreeresult.push(node.val); // visit roottraverse(node.right); // visit right subtreeif (node === null) return; // base case: no node
if (node === null) return; // base case: no node
traverse(node.left); // visit left subtree