1 二叉树的镜像 2 //操作给定的二叉树,将其变换为源二叉树的镜像。 3 //二叉树的镜像定义:源二叉树 4 8 5 / \ 6 6 10 7 / \ / \ 8 5 7 9 11 9 镜像二叉树10 811 / \12 10 613 / \ / \14 11 9 7 515 16 //思想:如果根节点有左右结点,则直接交换左右结点。然后进行递归即可。关于二叉树的问题,首先17 // 要想到递归,从简单的条件考虑,然后再递归左右子树。18 struct TreeNode19 {20 int val;21 TreeNode* left;22 TreeNode* right;23 TreeNode(int x):val(x), left(NULL), right(NULL){}24 };25 class Solution26 {27 public:28 void Mirror(TreeNode* pRoot)29 {30 if (pRoot == NULL)31 {32 return;33 }34 if (pRoot->left == NULL && pRoot->right == NULL)35 {36 return;37 }38 TreeNode* pTemp = pRoot->left;39 pRoot->left = pRoot->right;40 pRoot->right = pTemp;41 if (pRoot->left)42 {43 Mirror(pRoot->left);44 }45 if (pRoot->right)46 {47 Mirror(pRoot->right);48 }49 return ;50 }51 };