题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像
如图所示:右边的二叉树就是左边的树的镜像
上述树求镜像的步骤如下:我们先前序遍历这个树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有非叶子结点的左右子结点之后,就得到了树的镜像。
public void MirrorRecursively(BinaryTreeNode node){
if(node == null)
return;
if(node.leftNode == null && node.rightNode == null)
return;
BinaryTreeNode temp = node.leftNode;
node.leftNode = node.rightNode;
node.rightNode = temp;
if(node.leftNode != null)
MirrorRecursively(node.leftNode);
if(node.rightNode != null)
MirrorRecursively(node.rightNode);
}