二叉树的镜像

二叉树的镜像

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


思路很简单,不多说了,就是递归。二叉树问题真的很时候用递归

/**
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) {
        reverse(root);
    }
    public void reverse(TreeNode root){
        if(root==null||(root.left==null&&root.right==null)){
            return;
        }
        TreeNode temp=root.left;
        root.left=root.right;
        root.right=temp;
        reverse(root.left);
        reverse(root.right);
    }
}

还有更简单的递归算法!

/**
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 left=root.left;
        TreeNode right=root.right;
        root.left=right;
        root.right=left;
        Mirror(root.left);
        Mirror(root.right);
    }
}
posted @ 2020-03-02 16:46  别再闹了  阅读(43)  评论(0)    收藏  举报