树的镜像反转,先将树转换为做孩子有兄弟的二叉树,然后对二叉树的每一个右子树进行链表的反转操作(思路很重要)
- //树的镜像反转,转换为二叉树进行操作
- 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;
- }
- }