class Solution {
public:
void hConvert(TreeNode
* pRoot)
{
if(pRoot
!=NULL){
if(pRoot
->left
!=NULL&&pRoot
->left
->right
!=pRoot)
hConvert(pRoot
->left);
TreeNode
*temp
=pRoot
->right ;
TreeNode
* post
=pRoot
->right;
if(post
!=NULL){
while(post
->left)
post
=post
->left;
pRoot
->right
=post;
post
->left
=pRoot;
}
TreeNode
* pre
=pRoot
->left;
if(pre
!=NULL){
while(pre
->right
&&pre
->right
!=pRoot)
pre
=pre
->right;
pRoot
->left
=pre;
pre
->right
=pRoot;
}
hConvert(temp);
}
}
TreeNode
* Convert(TreeNode
* pRootOfTree){
if(pRootOfTree
==NULL)
return NULL;
TreeNode
* pRoot
=pRootOfTree;
while(pRootOfTree
->left)
pRootOfTree
=pRootOfTree
->left;
hConvert(pRoot);
return pRootOfTree;
}
};
转载请注明原文地址: https://ju.6miu.com/read-1201331.html