0
0
DSA Typescriptprogramming~20 mins

BST Find Maximum Element in DSA Typescript - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
BST Maximum Finder Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Find the maximum element in a BST
What is the output of the following TypeScript code that finds the maximum element in a Binary Search Tree (BST)?
DSA Typescript
class Node {
  value: number;
  left: Node | null;
  right: Node | null;
  constructor(value: number) {
    this.value = value;
    this.left = null;
    this.right = null;
  }
}

function findMax(root: Node | null): number | null {
  if (!root) return null;
  let current = root;
  while (current.right !== null) {
    current = current.right;
  }
  return current.value;
}

const root = new Node(10);
root.left = new Node(5);
root.right = new Node(15);
root.right.right = new Node(20);
root.right.left = new Node(12);

console.log(findMax(root));
A20
B15
C12
D10
Attempts:
2 left
💡 Hint
The maximum element in a BST is the rightmost node.
Predict Output
intermediate
2:00remaining
Output of findMax on a single-node BST
What will be printed when findMax is called on a BST with only one node?
DSA Typescript
class Node {
  value: number;
  left: Node | null;
  right: Node | null;
  constructor(value: number) {
    this.value = value;
    this.left = null;
    this.right = null;
  }
}

function findMax(root: Node | null): number | null {
  if (!root) return null;
  let current = root;
  while (current.right !== null) {
    current = current.right;
  }
  return current.value;
}

const root = new Node(42);
console.log(findMax(root));
Anull
B0
C42
Dundefined
Attempts:
2 left
💡 Hint
If there is only one node, it is both minimum and maximum.
🔧 Debug
advanced
2:00remaining
Identify the error in this BST maximum finder
What error will this TypeScript code produce when trying to find the maximum element in a BST?
DSA Typescript
class Node {
  value: number;
  left: Node | null;
  right: Node | null;
  constructor(value: number) {
    this.value = value;
    this.left = null;
    this.right = null;
  }
}

function findMax(root: Node | null): number | null {
  if (!root) return null;
  let current = root;
  while (current.left !== null) {
    current = current.left;
  }
  return current.value;
}

const root = new Node(10);
root.left = new Node(5);
root.right = new Node(15);
root.right.right = new Node(20);
root.right.left = new Node(12);

console.log(findMax(root));
AReturns 20 correctly
BThrows a TypeError at runtime
CReturns null
DReturns 5 (minimum value), not maximum
Attempts:
2 left
💡 Hint
Check which child pointer is used to traverse to find maximum.
Predict Output
advanced
2:00remaining
Output when BST is empty
What is the output of the following code when the BST is empty (null root)?
DSA Typescript
class Node {
  value: number;
  left: Node | null;
  right: Node | null;
  constructor(value: number) {
    this.value = value;
    this.left = null;
    this.right = null;
  }
}

function findMax(root: Node | null): number | null {
  if (!root) return null;
  let current = root;
  while (current.right !== null) {
    current = current.right;
  }
  return current.value;
}

const root = null;
console.log(findMax(root));
A0
Bnull
Cundefined
DThrows a TypeError
Attempts:
2 left
💡 Hint
Check the base case for an empty tree.
🧠 Conceptual
expert
2:00remaining
Why does traversing right child nodes find the maximum in a BST?
In a Binary Search Tree (BST), why does moving to the right child repeatedly lead to the maximum element?
ABecause in BST, right child nodes always have values greater than their parent nodes
BBecause left child nodes contain the maximum values in BST
CBecause BST nodes are arranged randomly, so right traversal finds max by chance
DBecause the root node always contains the maximum value
Attempts:
2 left
💡 Hint
Recall the BST property about left and right children values.