Complete the code to start preorder traversal by visiting the root node first.
function preorder(node: TreeNode | null): void {
if (node === null) return;
console.log(node.val);
preorder([1]);
}In preorder traversal, after visiting the root, we visit the left subtree first, so we call preorder on node.left.
Complete the code to continue preorder traversal by visiting the right subtree after the left.
function preorder(node: TreeNode | null): void {
if (node === null) return;
console.log(node.val);
preorder(node.left);
preorder([1]);
}After visiting the root and left subtree, preorder traversal visits the right subtree, so we call preorder on node.right.
Fix the error in the preorder traversal function to avoid infinite recursion.
function preorder(node: TreeNode | null): void {
if (node === null) return;
console.log(node.val);
preorder(node.left);
preorder([1]);
}Calling preorder on node again causes infinite recursion. We must call preorder on node.right to continue traversal correctly.
Fill both blanks to complete the preorder traversal function visiting root, left, then right.
function preorder(node: TreeNode | null): void {
if (node === null) return;
console.log(node.val);
preorder([1]);
preorder([2]);
}Preorder traversal visits root first, then recursively visits left subtree (node.left), then right subtree (node.right).
Fill all three blanks to create a preorder traversal that prints the node value in uppercase, then visits left and right children.
function preorder(node: TreeNode | null): void {
if (node === null) return;
console.log(node.val[1]);
preorder([2]);
preorder([3]);
}To print the node value in uppercase, use .toUpperCase(). Then preorder visits left child (node.left) and right child (node.right).