class Solution
{
public:
void inorder_dfs(Node * node, Node * & parent) {
if(node == NULL) {
return;
}
inorder_dfs(node->left, parent);
parent->left = NULL;
parent->right = node;
parent = node;
inorder_dfs(node->right, parent);
}
Node *flattenBST(Node *root)
{
Node * tmp = new Node(-1);
Node * parent = tmp;
inorder_dfs(root, parent);
parent->left = NULL;
parent->right = NULL;
Node * res = tmp->right;
return res;
}
};