树的镜像反转,先将树转换为做孩子有兄弟的二叉树,然后对二叉树的每一个右子树进行链表的反转操作(思路很重要)
//树的镜像反转,转换为二叉树进行操作
TreeNode* MirorReverse(TreeNode* root)
{
assert(root);
if(root->lchild)
{
TreeNode *p = root->lchild;
TreeNode *cur = p->rchild;
p->rchild=NULL;
while(cur->rchild)
{
TreeNode* tmp = cur->rchild;
cur->rchild=p;
if(p->lchild)
MirorReverse(cur->lchild);
p=cur;
cur=tmp;
}
root->lchild=p;
return root;
}
}