题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
比如: 源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
解题思路:将对称位置的节点交换即可,先将根节点的左右子节点交换,然后分别以左右子树进行递归。
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pRoot TreeNode类
* @return TreeNode类
*/
public TreeNode Mirror (TreeNode pRoot) {
// write code here
if(pRoot==null) return pRoot;
TreeNode tem=pRoot.left; //交换左右节点
pRoot.left=pRoot.right;
pRoot.right=tem;
Mirror(pRoot.left); //遍历左子树
Mirror(pRoot.right); //遍历右子树
return pRoot;
}
}