Why can't iorder traversal be used to flatten a BST. PLease see this code

void flatten_bst(node*root){
static LLnode *start=NULL,*recent=NULL;

if(root==NULL){
    return;
}
flatten_bst(root->left);

LLnode *new_llnode = new LLnode(root->data);
cout<<root->data<<",";
if(start==NULL)
{
	recent=new_llnode;
	start=new_llnode;
}
else{
recent->next = new_llnode;
recent=new_llnode;
if(start->next == NULL) start->next = recent;
}

flatten_bst(root->right);

}