剑指offer:操作给定的二叉树,将其变换为源二叉树的镜像 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: void Mirror(TreeNode *pRoot) { //根节点为空或者没有左右子结点的情况,函数返回 if((pRoot==NULL)||(pRoot->left==NULL && pRoot->right==NULL)) return; //首先交换左右子结点 TreeNode *pTemp=pRoot->left; pRoot->left=pRoot->right; pRoot->right=pTemp; //当左右子结点不为空时,递归调用自身,整个过程就是一个递归,注意递归停止的条件 if(pRoot->left) Mirror(pRoot->left); if(pRoot->right) Mirror(pRoot->right); } }; 1234567891011121314151617181920212223242526 步骤:1.交换根结点的左右子结点;2.将左右子结点看作根结点进行1的操作