操作给定的二叉树,将其变换为源二叉树的镜像。
思路:先前序遍历这棵树的结点,如果遍历到结点有子节点,则交换着两个子节点,当交换完所有非叶子节点的左右子节点之后,就得到了树的镜像。
void Mirror(TreeNode *pRoot) {
if (pRoot == NULL)
return;
if (pRoot->left == NULL&&pRoot->right == NULL)
return;
swap(pRoot->left, pRoot->right);//若左右子树有存在的,就交换
if (pRoot->left)//若左子树存在,则递归交换左子树
Mirror(pRoot->left);
if (pRoot->right)//若右子树存在,则递归交换右子树
Mirror(pRoot->right);
}