您的位置:首页 > Web前端

剑指offer 19. 二叉树的镜像

2017-05-10 08:08 471 查看
// 题目:输入一个二叉树,输出它的镜像
// 解法:递归的进行,转换每一个节点

public class Main {

public static void main(String[] args) {
BinaryTreeNode root = new BinaryTreeNode();
BinaryTreeNode n1 = new BinaryTreeNode();
BinaryTreeNode n2 = new BinaryTreeNode();
BinaryTreeNode n3 = new BinaryTreeNode();
BinaryTreeNode n4 = new BinaryTreeNode();
BinaryTreeNode n5 = new BinaryTreeNode();
root.value = 50;
n1.value = 25;
n2.value = 75;
n3.value = 10;
n4.value = 35;
n5.value = 35;
root.leftNode = n1;
root.rightNode = n2;
n1.leftNode = n3;
n1.rightNode = n4;
ReverseTree(root);
System.out.println("complete!");
}

public static void ReverseTree(BinaryTreeNode root) {
if(root == null){
return;
}
if(root.leftNode == null && root.rightNode == null){
return;
}
BinaryTreeNode temp = root.leftNode;							//如果左右结点有一个不为空,就转换两个子树
root.leftNode = root.rightNode;
root.rightNode = temp;
if(root.leftNode!=null){										//如果不为空就找左子树
ReverseTree(root.leftNode);
}
if(root.rightNode!=null){										//如果不为空就找右子树
ReverseTree(root.rightNode);
}
}

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