题目链接

牛客网

题目描述

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

解题思路

public class Solution {
   
    public void Mirror(TreeNode root) {
   
        if (root==null || (root.left==null && root.right==null)) return;
        root = MirrorTree(root);
    }
    private TreeNode MirrorTree(TreeNode root) {
   
        if (root==null || (root.left==null && root.right==null)) return root;
        TreeNode left= MirrorTree(root.right);
        TreeNode right= MirrorTree(root.left);
        root.left = left;
        root.right = right;
        return root;
    }
}
public void Mirror(TreeNode root) {
   
    if (root == null)
        return;
    swap(root);
    Mirror(root.left);
    Mirror(root.right);
}

private void swap(TreeNode root) {
   
    TreeNode t = root.left;
    root.left = root.right;
    root.right = t;
}