您的位置:首页 > Web前端

剑指offer16--二叉树的镜像处理

2016-05-25 10:46 405 查看
题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。

所谓二叉树的镜像,无非就是二叉树关于根节点对称而已



package 剑指offer;
/*题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。*/
public class Test19 {
public static class BinaryTreeNode{
int value;
BinaryTreeNode left;
BinaryTreeNode right;
}

public static void binaryTreeImage(BinaryTreeNode root){
if(root != null){
BinaryTreeNode tmp = root.left;
root.left = root.right;
root.right = tmp;

// 对结点的左右两个子树进行处理
binaryTreeImage(root.left);
binaryTreeImage(root.right);
}
}

public static void printTree(BinaryTreeNode node) {
if (node != null) {
printTree(node.left);
System.out.print(node.value + " ");
printTree(node.right);
}
}

public static void main(String args[]){
//       8
//    /    \
//   6     10
//  / \   / \
// 5   7 9  11
BinaryTreeNode root = new BinaryTreeNode();
root.value = 8;
root.left = new BinaryTreeNode();
root.left.value = 6;
root.left.left = new BinaryTreeNode();
root.left.left.value = 5;
root.left.right = new BinaryTreeNode();
root.left.right.value = 7;
root.right = new BinaryTreeNode();
root.right.value = 10;
root.right.left = new BinaryTreeNode();
root.right.left.value = 9;
root.right.right = new BinaryTreeNode();
root.right.right.value = 11;
printTree(root);
System.out.println();
binaryTreeImage(root);
printTree(root);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: