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 minimum element located?
The minimum element is always found by going to the leftmost node starting from the root, because left children are smaller than their parents.
Click to reveal answer
beginner
Why does the leftmost node in a BST contain the minimum value?
Because in a BST, all left children are smaller than their parents, so moving left repeatedly leads to the smallest value.
Click to reveal answer
intermediate
What is the time complexity of finding the minimum 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). In a balanced tree, it is O(log n).
Click to reveal answer
beginner
Show the C# code snippet to find the minimum element in a BST.
The minimum element is always the leftmost node in a BST.
What is the first step to find the minimum element in a BST?
AGo to the left child
BGo to the right child
CCheck the root value
DTraverse all nodes
✗ Incorrect
You start by moving to the left child repeatedly to find the minimum.
What is the time complexity to find the minimum element in a balanced BST with n nodes?
AO(n)
BO(log n)
CO(1)
DO(n log n)
✗ Incorrect
In a balanced BST, height h is about log n, so finding minimum is O(log n).
If a BST has only one node, what is the minimum element?
ALeft child
BNo minimum element
CThe root node
DRight child
✗ Incorrect
With one node, the root itself is the minimum.
What happens if you call FindMin on an empty BST?
AReturns null
BThrows error
CReturns root
DReturns zero
✗ Incorrect
If the BST is empty (root is null), FindMin returns null.
Explain how to find the minimum element in a Binary Search Tree.
Think about the BST property and where smaller values are.
You got /4 concepts.
Write a simple C# method to find the minimum element in a BST and explain its steps.
Use a while loop to go left until no more left child.
You got /4 concepts.
Practice
(1/5)
1. In a Binary Search Tree (BST), where is the minimum element always located?
easy
A. At the rightmost node
B. At the root node
C. At the leftmost node
D. At any leaf node
Solution
Step 1: Understand BST property
In a BST, left child nodes have smaller values than their parents.
Step 2: Locate minimum element
The smallest value is found by going as far left as possible from the root.
Final Answer:
At the leftmost node -> Option C
Quick Check:
Minimum element = leftmost node [OK]
Hint: Minimum is always the leftmost node in BST [OK]
Common Mistakes:
Thinking minimum is at root always
Confusing leftmost with rightmost node
Assuming minimum can be any leaf
2. Which of the following C# code snippets correctly finds the minimum element in a BST node named root?
easy
A. while (root.Left != null) { root = root.Left; } return root.Value;
B. while (root.Right != null) { root = root.Right; } return root.Value;
C. return root.Value;
D. while (root != null) { root = root.Left; } return root.Value;
Solution
Step 1: Check loop condition for minimum
Minimum is found by moving left while left child exists.
Step 2: Validate code correctness
while (root.Left != null) { root = root.Left; } return root.Value; moves left until null, then returns last node's value correctly.
Final Answer:
while (root.Left != null) { root = root.Left; } return root.Value; -> Option A
Quick Check:
Traverse left until null, then return value [OK]
Hint: Traverse left child until null to find minimum [OK]
Common Mistakes:
Traversing right child instead of left
Returning root value without traversal
Looping until root is null causing error
3. What will be the output of the following C# code snippet?
class Node {
public int Value;
public Node Left, Right;
public Node(int val) { Value = val; }
}
Node root = new Node(10);
root.Left = new Node(5);
root.Right = new Node(15);
root.Left.Left = new Node(2);
root.Left.Right = new Node(7);
Node current = root;
while (current.Left != null) {
current = current.Left;
}
Console.WriteLine(current.Value);
medium
A. 7
B. 2
C. 5
D. 10
Solution
Step 1: Trace the tree structure
Root is 10, left child 5, left-left child 2, left-right child 7.
Step 2: Follow the loop to find minimum
Loop moves from 10 to 5, then to 2 (leftmost node). 2 has no left child, loop stops.
Final Answer:
2 -> Option B
Quick Check:
Leftmost node value = 2 [OK]
Hint: Leftmost node value is printed after loop [OK]
Common Mistakes:
Printing root value instead of leftmost
Confusing left-right child as minimum
Stopping loop too early
4. Identify the error in the following C# method to find the minimum element in a BST:
int FindMin(Node root) {
while (root != null) {
root = root.Left;
}
return root.Value;
}
medium
A. The method should check root.Right instead of root.Left
B. The method should return root.Left.Value instead of root.Value
C. The method should use recursion instead of a loop
D. The loop condition should be root.Left != null, not root != null
Solution
Step 1: Analyze loop condition
Loop runs while root is not null, but root becomes null after last left move.
Step 2: Identify cause of error
After loop, root is null, so accessing root.Value causes error. Condition should be root.Left != null to stop at last node.
Final Answer:
The loop condition should be root.Left != null, not root != null -> Option D
Quick Check:
Stop before null to access valid node [OK]
Hint: Loop until root.Left is null, not root itself [OK]
Common Mistakes:
Looping until root is null causing null reference
Returning value after root becomes null
Checking right child instead of left
5. Given a BST where some nodes have duplicate values, which approach correctly finds the minimum element considering duplicates are allowed only on the right subtree?
class Node {
public int Value;
public Node Left, Right;
public Node(int val) { Value = val; }
}
// Duplicates go to right subtree
Which code snippet correctly finds the minimum element?
hard
A. while (root.Left != null) { root = root.Left; } return root.Value;
B. while (root.Right != null) { root = root.Right; } return root.Value;
C. return root.Value; // root is minimum due to duplicates on right
D. while (root.Left != null && root.Left.Value < root.Value) { root = root.Left; } return root.Value;
Solution
Step 1: Understand duplicate placement rule
Duplicates go to right subtree, so minimum is still in leftmost path.
Step 2: Confirm traversal for minimum
Traverse left child nodes until no more left child exists to find minimum.
Final Answer:
while (root.Left != null) { root = root.Left; } return root.Value; -> Option A
Quick Check:
Minimum is leftmost node even with duplicates on right [OK]
Hint: Duplicates on right don't affect leftmost minimum [OK]
Common Mistakes:
Checking right subtree for minimum
Assuming root is minimum without traversal
Adding extra conditions unnecessarily
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.