A Binary Search Tree is a tree where each node has at most two children. The left child's value is less than the parent's value, and the right child's value is greater than the parent's value.
Click to reveal answer
beginner
In a BST, where is the maximum element located?
The maximum element is always found at the rightmost node because values increase as you move right.
Click to reveal answer
beginner
Why do we keep moving right to find the maximum element in a BST?
Because in a BST, all right children have values greater than their parents, so the farthest right node holds the largest value.
Click to reveal answer
intermediate
What is the time complexity to find the maximum element in a BST?
The time complexity is O(h), where h is the height of the tree. In the worst case (skewed tree), it can be O(n).
Click to reveal answer
beginner
Show the JavaScript code snippet to find the maximum element in a BST.
function findMax(root) {
if (!root) return null;
while (root.right) {
root = root.right;
}
return root.value;
}
Click to reveal answer
Where do you find the maximum element in a BST?
ALeftmost node
BRightmost node
CRoot node
DAny leaf node
✗ Incorrect
The maximum element is always at the rightmost node in a BST.
What is the first step to find the maximum element in a BST?
AGo to the right child
BGo to the left child
CCheck the root value
DTraverse all nodes
✗ Incorrect
You start by moving to the right child repeatedly to find the maximum.
What is the time complexity to find the maximum element in a balanced BST?
AO(1)
BO(n log n)
CO(log n)
DO(n)
✗ Incorrect
In a balanced BST, height h is about log n, so time complexity is O(log n).
If a BST has only one node, what is the maximum element?
AThe right child value
BNo maximum element
CThe left child value
DThe root node's value
✗ Incorrect
With one node, the root itself is the maximum element.
What happens if you call findMax on an empty BST?
AReturns null
BReturns 0
CThrows error
DReturns undefined
✗ Incorrect
The function returns null when the BST is empty.
Explain how to find the maximum element in a Binary Search Tree.
Think about where larger values are stored in a BST.
You got /4 concepts.
Write a simple JavaScript function to find the maximum value in a BST and explain its steps.
Use a while loop to traverse right children.
You got /3 concepts.
Practice
(1/5)
1. In a Binary Search Tree (BST), where is the maximum element always located?
easy
A. At any leaf node
B. At the leftmost node
C. At the root node
D. At the rightmost node
Solution
Step 1: Understand BST property
In a BST, left child nodes have smaller values and right child nodes have larger values than their parent.
Step 2: Locate maximum element
The maximum element is the largest value, so it must be the rightmost node in the tree.
Final Answer:
At the rightmost node -> Option D
Quick Check:
Maximum = rightmost node [OK]
Hint: Maximum is always the rightmost node in BST [OK]
Common Mistakes:
Thinking maximum is at the root
Confusing leftmost with maximum
Assuming maximum can be any leaf
2. Which of the following JavaScript code snippets correctly finds the maximum element in a BST node structure where each node has left and right properties?
easy
A. function findMax(node) { while(node.right) { node = node.right; } return node.value; }
B. function findMax(node) { while(node.left) { node = node.left; } return node.value; }
C. function findMax(node) { return node.value; }
D. function findMax(node) { if(!node) return null; return findMax(node.left); }
Solution
Step 1: Check traversal direction
To find maximum, we must move right until no more right child exists.
Step 2: Verify code correctness
function findMax(node) { while(node.right) { node = node.right; } return node.value; } correctly loops while node.right exists, then returns node.value.
Final Answer:
function findMax(node) { while(node.right) { node = node.right; } return node.value; } -> Option A
Quick Check:
Traverse rightmost node to get max [OK]
Hint: Loop right child until none to find max [OK]
Common Mistakes:
Looping left child instead of right
Returning root value without traversal
Recursing incorrectly on left child
3. What will be the output of the following code snippet?
class Node {
constructor(value) {
this.value = value;
this.left = null;
this.right = null;
}
}
const root = new Node(10);
root.left = new Node(5);
root.right = new Node(15);
root.right.right = new Node(20);
function findMax(node) {
while(node.right) {
node = node.right;
}
return node.value;
}
console.log(findMax(root));
medium
A. 20
B. 10
C. 15
D. 5
Solution
Step 1: Trace the tree structure
Root is 10, right child 15, right of 15 is 20. The rightmost node is 20.
Step 2: Follow findMax function
The function moves right until no right child. It stops at node with value 20 and returns it.
Final Answer:
20 -> Option A
Quick Check:
Rightmost node value = 20 [OK]
Hint: Output is value of rightmost node [OK]
Common Mistakes:
Returning root value instead of max
Confusing left and right children
Not following loop to last right node
4. The following code is intended to find the maximum element in a BST but does not work correctly. What is the error?
function findMax(node) {
if (!node.right) {
return node.value;
}
return findMax(node.left);
}
medium
A. It should check node.left instead of node.right
B. It should return node.right.value instead of node.value
C. It should recurse on node.right, not node.left
D. It should use a loop instead of recursion
Solution
Step 1: Analyze recursion direction
The code checks if node.right is null, then returns node.value. Otherwise, it recurses on node.left.
Step 2: Identify correct recursion path
To find max, recursion must go right, not left. So it should recurse on node.right.
Final Answer:
It should recurse on node.right, not node.left -> Option C
Quick Check:
Max found by going right child [OK]
Hint: Recurse or loop right child to find max [OK]
Common Mistakes:
Recursing left child instead of right
Returning wrong node value
Thinking loop is mandatory over recursion
5. Given a BST where some nodes may have duplicate values, which approach correctly finds the maximum element considering duplicates are allowed only on the right subtree?