二叉树的镜像

来源:互联网 发布:文字特效制作软件 编辑:程序博客网 时间:2024/06/06 05:36

操作给定的二叉树,将其变换为源二叉树的镜像。

二叉树的镜像定义:源二叉树             8           /  \          6   10         / \  / \        5  7 9 11        镜像二叉树            8           /  \          10   6         / \  / \        11 9 7  5

思路比较简单:
遍历整个二叉树,当被遍历的当前节点的左右孩子不为空时,进行交换。直到所有非叶子节点的左右孩子被交换完成,结束。
可以用递归的解法,具体代码如下:

/**public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/public class Solution {    public void Mirror(TreeNode root) {        if(root == null)            return;        TreeNode temp = root.left;        root.left = root.right;        root.right = temp;        Mirror(root.left);        Mirror(root.right);    }}
0 0