二叉树镜像

Posted yangenyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树镜像相关的知识,希望对你有一定的参考价值。

 1 package offer;
 2 
 3 import Struct.TreeNode;
 4 
 5 /**
 6  * 
 7  * 二叉树的镜像定义:源二叉树 
 8             8
 9            /  10           6   10
11          / \  / 12         5  7 9  11
13         镜像二叉树
14             8
15            /  16           10   6
17          / \  / 18         11 9 7   5
19  * @author 爱不会绝迹
20  *
21  */
22 public class Problem08 
23     /**
24      * 
25      * 镜像二叉树
26      * @param root
27      */
28     public static void Mirror(TreeNode root) 
29         if(root!=null)
30             TreeNode tmp = root.left;
31             root.left = root.right;
32             root.right = tmp;
33             Mirror(root.left);
34             Mirror(root.right);
35         
36     
37     
38     private static int index = -1;
39     public static void main(String[] args) 
40         Integer[] array = 8,6,5,null,null,7,null,null,10,9,null,null,11,null,null;
41         TreeNode tree = createBinTree(array);
42 //        inOrder(tree);
43 //        postOrder(tree);
44         Mirror(tree);
45         preOrder(tree);
46     
47     private static TreeNode createBinTree(Integer[] array) 
48         TreeNode tree = null;
49         if(index < array.length-1 && array[++index]!=null)
50             tree = new TreeNode(array[index]);
51             tree.left = createBinTree(array);
52             tree.right = createBinTree(array);
53         
54         return tree;
55     
56     private static void preOrder(TreeNode root)
57         if(root!=null)
58             System.out.print(root.val+" ");
59             preOrder(root.left);
60             preOrder(root.right);
61         
62     
63     
64     private static void inOrder(TreeNode root)
65         if(root!=null)
66             preOrder(root.left);
67             System.out.print(root.val+" ");
68             preOrder(root.right);
69         
70     
71     
72     private static void postOrder(TreeNode root)
73         if(root!=null)
74             preOrder(root.left);
75             preOrder(root.right);
76             System.out.print(root.val+" ");
77         
78     
79 

1、创建二叉树,

2、先序遍历,

3、中序遍历,

4、后序遍历,

5、将二叉树变为镜像

以上是关于二叉树镜像的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的镜像

剑指Offer 18. 二叉树的镜像 (二叉树)

N18_二叉树的镜像

二叉树镜像

二叉树的镜像

二叉树的镜像-剑指Offer