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;
    }
};