常考数据结构与算法:二叉树的镜像

题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树
8
/ \、
6 10
/ \ / \、
5 7 9 11
镜像二叉树
8
/ \、
10 6
/ \ / \、
11 9 7 5

 

解题思路
递归的思想,交换两个子节点。

public class GlassMe {
    public static void main(String[] args) {

    }

    /**
     *
     *
     * @param pRoot TreeNode类
     * @return TreeNode类
     */
    public TreeNode Mirror (TreeNode pRoot) {
        if(null == pRoot){
            return null;
        }

        if(pRoot.left == null && pRoot.right == null){
            return pRoot;
        }

        TreeNode temp = pRoot.left;
        pRoot.left = pRoot.right;
        pRoot.right = temp;

        Mirror(pRoot.left);
        Mirror(pRoot.right);

        return pRoot;
    }
}

class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode(int x) { val = x; }
}

 

你可能感兴趣的:(数据结构,算法)