题目:操作给定的二叉树,将其变换为源二叉树的镜像。
二叉树的镜像定义:
1 2 3 4 5 6 7 8 9 10 11 12
| 源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11
镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5
|
解题思路:递归交换二叉树的左右子树,直至叶子结点
代码:
1 2 3 4 5 6 7
| void Mirror(TreeNode *pRoot) { if (pRoot) { swap(pRoot->left, pRoot->right); Mirror(pRoot->left); Mirror(pRoot->right); } }
|