Find the node with minimum value in a Binary Search Tree in C++

Suppose we have one binary search tree. We have to find the minimum element in binary search tree. So if the BST is like below −

The minimum element will be 1.

As we know that the left subtree always holds the smaller elements. So if we traverse through the left subtree again and again until left is null, we can find the smallest element.


 Live Demo

using namespace std;
class node{
      node *left;
      int val;
      node *right;
node *bst = NULL;
node *getNode(){
   node *newNode;
   newNode = new node;
   return newNode;
void insert(node **root, int key){
   node *newNode;
   newNode = getNode();
   newNode->val = key; newNode->left = NULL; newNode->right = NULL;
   if(*root == NULL){
      *root = newNode;
   } else {
      if(key < (*root)->val)
      insert(&((*root)->left), key);
      insert(&((*root)->right), key);
int minElement(){
   node* current = bst;
   while (current->left != NULL) {
      current = current->left;
   int item[] = {3, 2, 1, 6, 5, 8};
   int n = sizeof(item)/sizeof(item[0]);
   int i;
   for(i = 0; i<8; i++){
      insert(&bst, item[i]);
   cout << "Minimum element is: " << minElement();


Minimum element is: 1

Updated on: 17-Dec-2019

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started