输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向
TreeNode* prev = NULL;
void _Convert(TreeNode* cur)
{
if(cur == NULL) return;
_Convert(cur->left);
cur->left = prev;
if(prev)
prev->right = cur;
prev = cur;
_Convert(cur->right);
}
TreeNode* Convert(TreeNode* pRootOfTree)
{
if(pRootOfTree == NULL) return NULL;
_Convert(pRootOfTree);
TreeNode* head = pRootOfTree;
while(head && head->left)
{
head = head -> left;
}
return head;
}