题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
class Solution {
TreeNode* realhead=NULL;
TreeNode* head=NULL;
public:
TreeNode* Convert(TreeNode* pRootOfTree)
{
convert(pRootOfTree);
return realhead;
}
void convert(TreeNode* root){
if(root==NULL)
return;
convert(root->left);
if(realhead){
head->right=root;
root->left=head;
head=root;
}
else{
realhead=root;
head=root;
}
convert(root->right);
}
};