剑指offer--二叉树的镜像
/** * 先前序遍历这棵树的每个结点,如果遍历到的结点有子结点, * 就交换它的两个子结点,当交换完所有的非叶子结点的左右结点之后,就得到了树的镜像。 */ package javabasic.nowcoder; /* * 操作给定的二叉树,将其变换为源二叉树的镜像。 * 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 */ class TreeNode23 { int val = 0; TreeNode23 left = null; TreeNode23 right = null; public TreeNode23(int val) { this.val = val; } } public class Main23 { public void Mirror(TreeNode23 root) { if(root==null) { return; } if(root.left==null && root.right==null) { return; } TreeNode23 temp = root.left; root.left = root.right; root.right = temp; if(root.left!=null) { Mirror(root.left); } if(root.right!=null) { Mirror(root.right); } } }