剑指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);
        }
    }

  

 

posted @ 2017-10-12 20:24  toov5  阅读(147)  评论(0编辑  收藏  举报