https://www.geeksforgeeks.org/batch/gfg-160-problems/track/tree-gfg-160/problem/fixed-two-nodes-of-a-bst


class Solution {    
    private : 
    Node* prev;
    Node* first;
    Node* sec;
    
    void inorder( Node* root){
        if(!root) return;
        
        inorder(root->left);
        
        
        if(prev && prev->data > root->data){
            if(!first){
                first = prev;
            }
            
            sec = root;
        }
        
        prev=root;
        
        inorder(root->right);
    }
  public:
    void correctBST(Node* root) {
        // add code here.
        prev=first=sec=nullptr;
        
        inorder(root);
        
        swap(first->data , sec->data);
    }
};

Time & Space Complexity: