剑指offer之 二叉树镜像
package Problem19;
/*
* 问题描述:
* 请完成一个函数,输入一个二叉树,该函数输出它的镜像;
*/
//定义二叉树的结构
class BinaryTreeNode {
BinaryTreeNode leftNode;
BinaryTreeNode rightNode;
int value;
}
public class MirrorOfBinaryTree {
public static void mirroOfBinTree(BinaryTreeNode root) {
if (root == null) {
return;
}
if (root.leftNode == null || root.rightNode == null) {
return;
}
// 交换一个结点的左右子节点
int tempValue;
tempValue = root.leftNode.value;
root.leftNode.value = root.rightNode.value;
root.rightNode.value = tempValue;
// 递归操作左右子节点
if (root.leftNode != null) {
mirroOfBinTree(root.leftNode);
}
if (root.rightNode != null) {
mirroOfBinTree(root.rightNode);
}
}