JOHN ZDANIS

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