二叉树的镜像

【题目描述】

请完成一个函数,输入一个二叉树,该函数输出它的镜像。

【示例】

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

【代码实现】

递归法:

class Solution {
    public TreeNode mirrorTree(TreeNode root) {
        if(root==null){
            return null;
        }
        TreeNode node=root.left;
        root.left=mirrorTree(root.right);
        root.right=mirrorTree(node);
        return root;
    }
}

辅助栈/列表法:

class Solution {
    public TreeNode mirrorTree(TreeNode root) {
        if(root==null){
            return null;
        }
        LinkedList<TreeNode> stack = new LinkedList<>();
        stack.addLast(root);
        while(!stack.isEmpty()){
            TreeNode node=stack.removeLast();
            TreeNode temp=node.left;
            node.left=node.right;
            node.right=temp;
            if(node.left!=null) stack.addLast(node.left);
            if(node.right!=null) stack.addLast(node.right);
        }
        return root;
    }
}

  

posted @ 2022-07-14 11:46  IcyYs  阅读(24)  评论(0编辑  收藏  举报