This is one of those questions where knowing the terminology is necessary. In-order
traversal visits the left child nodes first, then the root, followed by the right child (remember, it's called in-order
because the current node's value is read in-between the left and right child nodes).
Recall the following ordering types:
Inorder traversal
- First, visit all the nodes in the left subtree
- Then the root node
- Visit all the nodes in the right subtree
When to use? With a BST, the in order traversal will give the elements in ascending order, useful for problems where order matters.
SNIPPET
1// pseudo-logic of the inorder function:
2inorder(root.left)
3display(root.data)
4inorder(root.right)

xxxxxxxxxx
27
function inorderTraversal(root) {
let res = [];
helper(root, res);
return res;
}
​
function helper(root, res) {
if (!root) {
return res;
}
helper(root.left, res);
res.push(root.val);
helper(root.right, res);
return res;
}
​
const root = {
val: 1,
right: {
val: 2,
left: {
val: 3
}
}
};
​
console.log(inorderTraversal(root));
OUTPUT
:001 > Cmd/Ctrl-Enter to run, Cmd/Ctrl-/ to comment