Tree Traversal
A place to stick all my tree traversal algorithms so I don't forget them
Don't want to forget these.
function inorderTraversal(root: TreeNode | null): number[] {
if (root === null) {
return [];
} else {
const { val, left, right } = root;
return [...inorderTraversal(left), val, ...inorderTraversal(right)];
}
}
function inorderTraversal(root: TreeNode | null): number[] {
if (root === null) {
return [];
} else {
const stack = [];
const output = [];
let node = root;
while (node !== null || stack.length > 0) {
while (node !== null) {
stack.push(node);
node = node.left;
}
node = stack.pop();
output.push(node.val);
node = node.right;
}
return output;
}
}