0
0
DSA C++programming~20 mins

BST Find Minimum Element in DSA C++ - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
BST Minimum Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Find minimum element in a BST
What is the output of the following C++ code that finds the minimum element in a Binary Search Tree (BST)?
DSA C++
#include <iostream>
struct Node {
    int data;
    Node* left;
    Node* right;
};

int findMin(Node* root) {
    while (root->left != nullptr) {
        root = root->left;
    }
    return root->data;
}

int main() {
    Node n1 = {10, nullptr, nullptr};
    Node n2 = {5, nullptr, nullptr};
    Node n3 = {15, nullptr, nullptr};
    Node n4 = {2, nullptr, nullptr};
    Node n5 = {7, nullptr, nullptr};

    n1.left = &n2;
    n1.right = &n3;
    n2.left = &n4;
    n2.right = &n5;

    int minVal = findMin(&n1);
    std::cout << minVal << std::endl;
    return 0;
}
A7
B2
C5
D10
Attempts:
2 left
💡 Hint
The minimum element in a BST is the leftmost node.
Predict Output
intermediate
2:00remaining
Minimum element in BST with single node
What will be the output of the following code that finds the minimum element in a BST with only one node?
DSA C++
#include <iostream>
struct Node {
    int data;
    Node* left;
    Node* right;
};

int findMin(Node* root) {
    while (root->left != nullptr) {
        root = root->left;
    }
    return root->data;
}

int main() {
    Node root = {42, nullptr, nullptr};
    int minVal = findMin(&root);
    std::cout << minVal << std::endl;
    return 0;
}
ASegmentation fault
B0
C42
Dnullptr
Attempts:
2 left
💡 Hint
If there is only one node, it is the minimum.
Predict Output
advanced
2:00remaining
Find minimum element in BST with null root
What error or output will the following code produce when trying to find the minimum element in an empty BST (root is nullptr)?
DSA C++
#include <iostream>
struct Node {
    int data;
    Node* left;
    Node* right;
};

int findMin(Node* root) {
    while (root->left != nullptr) {
        root = root->left;
    }
    return root->data;
}

int main() {
    Node* root = nullptr;
    int minVal = findMin(root);
    std::cout << minVal << std::endl;
    return 0;
}
ASegmentation fault
B0
CCompilation error
D-1
Attempts:
2 left
💡 Hint
Accessing members of a nullptr causes a runtime error.
Predict Output
advanced
2:00remaining
Find minimum element using recursion
What is the output of the following recursive function to find the minimum element in a BST?
DSA C++
#include <iostream>
struct Node {
    int data;
    Node* left;
    Node* right;
};

int findMin(Node* root) {
    if (root == nullptr) return -1;
    if (root->left == nullptr) return root->data;
    return findMin(root->left);
}

int main() {
    Node n1 = {20, nullptr, nullptr};
    Node n2 = {10, nullptr, nullptr};
    Node n3 = {30, nullptr, nullptr};
    Node n4 = {5, nullptr, nullptr};
    Node n5 = {15, nullptr, nullptr};

    n1.left = &n2;
    n1.right = &n3;
    n2.left = &n4;
    n2.right = &n5;

    int minVal = findMin(&n1);
    std::cout << minVal << std::endl;
    return 0;
}
A5
B10
C15
D20
Attempts:
2 left
💡 Hint
The recursion goes left until no left child exists.
🧠 Conceptual
expert
2:00remaining
Why is the leftmost node the minimum in a BST?
In a Binary Search Tree (BST), why is the minimum element always found at the leftmost node?
ABecause BSTs store values in random order, so the minimum is always the leftmost by chance.
BBecause the right subtree always contains larger values, so the minimum must be on the rightmost node.
CBecause the root node always contains the minimum value in a BST.
DBecause all left children have smaller values than their parents, so going left leads to the smallest value.
Attempts:
2 left
💡 Hint
Think about the BST property for left and right children.