思路

采用递归的思想。对于根节点,若其左子树或右子树不为空,则互换左、右子树,然后对于左、右子树,分别递归上述处理方法,直至叶节点。

示例:

求二叉树的镜像_镜像

代码:

  1. typedef struct TNode 
  2.     int value; 
  3.     TNode* lchild; 
  4.     TNode* rchild; 
  5. }TNode,*BTree; 
  6.  
  7. //采用递归进行镜像转换 
  8. void MirrorTree(BTree tree) 
  9.     if (tree == NULL) return
  10.     if (tree->lchild == NULL && tree->rchild == NULL) return
  11.     TNode* temp = tree->lchild; 
  12.     tree->lchild = tree->rchild; 
  13.     tree->rchild = temp; 
  14.     MirrorTree(tree->lchild); 
  15.     MirrorTree(tree->rchild);