Challenge - 5 Problems
Left Side View Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output of Left Side View for a Simple Binary Tree
What is the output of the following TypeScript code that prints the left side view of a binary tree?
DSA Typescript
class TreeNode { val: number; left: TreeNode | null; right: TreeNode | null; constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { this.val = val === undefined ? 0 : val; this.left = left === undefined ? null : left; this.right = right === undefined ? null : right; } } function leftSideView(root: TreeNode | null): number[] { if (!root) return []; const result: number[] = []; const queue: (TreeNode | null)[] = [root]; while (queue.length > 0) { const levelSize = queue.length; for (let i = 0; i < levelSize; i++) { const node = queue.shift()!; if (i === 0) result.push(node.val); if (node.left) queue.push(node.left); if (node.right) queue.push(node.right); } } return result; } const root = new TreeNode(1, new TreeNode(2, new TreeNode(4), null), new TreeNode(3)); console.log(leftSideView(root));
Attempts:
2 left
💡 Hint
Remember, the left side view shows the first node visible at each level from the left side.
✗ Incorrect
The left side view visits nodes level by level and picks the first node at each level. Here, level 1 is 1, level 2 is 2, and level 3 is 4.
🧠 Conceptual
intermediate1:30remaining
Understanding Left Side View Node Selection
In the left side view of a binary tree, which nodes are included in the output?
Attempts:
2 left
💡 Hint
Think about what you see when looking at the tree from the left side.
✗ Incorrect
The left side view includes the first node visible at each level when looking from the left side, which is the leftmost node at that level.
🔧 Debug
advanced2:00remaining
Identify the Bug in Left Side View Implementation
What error will the following TypeScript code produce when trying to get the left side view of a binary tree?
DSA Typescript
function leftSideView(root: TreeNode | null): number[] {
if (!root) return [];
const result: number[] = [];
const queue: (TreeNode | null)[] = [root];
while (queue.length > 0) {
const levelSize = queue.length;
for (let i = 0; i <= levelSize; i++) {
const node = queue.shift()!;
if (i === 0) result.push(node.val);
if (node.left) queue.push(node.left);
if (node.right) queue.push(node.right);
}
}
return result;
}Attempts:
2 left
💡 Hint
Check the loop condition carefully and how many times you remove nodes from the queue.
✗ Incorrect
The for loop uses i <= levelSize, which causes one extra iteration. The queue.shift() returns undefined on that extra iteration, causing a runtime error when accessing node.val.
🚀 Application
advanced2:00remaining
Left Side View of an Unbalanced Binary Tree
Given the following unbalanced binary tree, what is the left side view output?
DSA Typescript
const root = new TreeNode(10, new TreeNode(5, null, new TreeNode(7, new TreeNode(6), null)), new TreeNode(15, null, new TreeNode(20)) ); console.log(leftSideView(root));
Attempts:
2 left
💡 Hint
Remember to pick the first node at each level from left to right.
✗ Incorrect
Level 1: 10; Level 2: 5 (left child); Level 3: 7 (right child of 5, but no left child at this level); Level 4: 6 (left child of 7).
❓ Predict Output
expert2:30remaining
Output of Left Side View for Complex Tree with Nulls
What is the output of the following TypeScript code that prints the left side view of a binary tree with some null children?
DSA Typescript
const root = new TreeNode(1, new TreeNode(2, null, new TreeNode(5, new TreeNode(7), null)), new TreeNode(3, null, new TreeNode(4)) ); console.log(leftSideView(root));
Attempts:
2 left
💡 Hint
Trace each level and pick the first node encountered from left to right.
✗ Incorrect
Level 1: 1; Level 2: 2 (left child); Level 3: 5 (right child of 2, no left child at this level); Level 4: 7 (left child of 5).