您的位置:首页 > Web前端

剑指offer第19题 输出二叉树的镜像 java解法

2016-07-24 10:15 531 查看
废话不多说,代码呈上来:

class BinaryTree{
int value;
BinaryTree mLeft;
BinaryTree mRight;
}
public class BinaryTreePreOrderPrint {
public static void preOrderPrint(BinaryTree binaryTree) {
if(binaryTree==null)
return;
System.out.println(binaryTree.value);
preOrderPrint(binaryTree.mLeft);
preOrderPrint(binaryTree.mRight);

}
public static void mirrorRecursivelyPreOrderPrint(BinaryTree binaryTree) {
if(binaryTree==null)
return;
if(binaryTree.mLeft==null&&binaryTree.mRight==null)
{
if(binaryTree==null)
return;
else {
System.out.println(binaryTree.value);
return;
}
}
System.out.println(binaryTree.value);
swapNode(binaryTree);
mirrorRecursivelyPreOrderPrint(binaryTree.mLeft);
mirrorRecursivelyPreOrderPrint(binaryTree.mRight);

}
public static BinaryTree swapNode(BinaryTree binaryTree) {
BinaryTree tree=new BinaryTree();
tree=binaryTree.mLeft;
binaryTree.mLeft=binaryTree.mRight;
binaryTree.mRight=tree;

return binaryTree;

}

public static void main(String[] args) {
BinaryTree binaryTree=new BinaryTree();
binaryTree.value=10;
BinaryTree binaryTree1=new BinaryTree();
binaryTree1.value=9;
binaryTree1.mLeft=null;
BinaryTree binaryTree2=new BinaryTree();
binaryTree2.value=11;
binaryTree.mLeft=binaryTree1;
binaryTree.mRight=binaryTree2;
// mirrorRecursivelyPreOrderPrint(binaryTree);
//测试空树
BinaryTree treeNull=null;
if(treeNull==null)
System.out.println(treeNull+"treeNull为null");
mirrorRecursivelyPreOrderPrint(treeNull);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  剑指offerJava实现