牛客网剑指offer刷题Java版-18二叉树的镜像

题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:

## 二叉树的镜像定义:

	源二叉树
	    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 ;
        Mirror(root.right);
        Mirror(root.left);
        TreeNode temp=root.left;
        root.left=root.right;
        root.right=temp;
    }
}

用栈模拟递归:

/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
import java.util.Stack;
public class Solution {
    public void Mirror(TreeNode root) {
        Stack<TreeNode> stack=new Stack();
        if(root==null)
            return ;
        stack.push(root);
        while(!stack.isEmpty()){
            TreeNode root_temp=stack.pop();
            TreeNode temp=root_temp.left;
            root_temp.left=root_temp.right;
            root_temp.right=temp;
            if(root_temp.left!=null)
                stack.push(root_temp.left);
            if(root_temp.right!=null)
                stack.push(root_temp.right);
        }
    }
}
发布了19 篇原创文章 · 获赞 0 · 访问量 190

猜你喜欢

转载自blog.csdn.net/qq_42632671/article/details/104341853