NODE *bst_to_dll(NODE *pNode, NODE **ppHead)
{
static NODE *prev; //通过static来保存prev是这个算法的关键
if (pNode)
{
bst_to_dll(pNode->left, ppHead);
if(prev == NULL)
{
(*ppHead) = pNode;
pNode->left = NULL;
prev = pNode;
}
else
{
pNode->left = prev;
prev->right = pNode;
prev = pNode;
}
bst_to_dll(pNode->right, ppHead);
}
else
{
if (prev)
prev->right=NULL;
}
}