【上海校区】算法题(三十四):二叉树的镜像

python 未结 0 138
换个房间
换个房间 2021-07-22 14:35
悬赏:88
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。

输入描述:
二叉树的镜像定义:源二叉树
                8
               /  \
              6   10
             / \  / \
            5  7 9 11
            镜像二叉树
                8
               /  \
              10   6
             / \  / \
            11 9 7  5
分析
与判断二叉树是否是平衡二叉树相似,可以用递归来做(后序遍历)。

从下而上递归



从上而下



代码一
public class TreeMirrior {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                TreeNode root = new TreeNode(1);
                root.left = new TreeNode(2);
                root.left.left = new TreeNode(3);
                root.right = new TreeNode(4);
                root.right.left = new TreeNode(5);
                root.right.right = new TreeNode(6);
                root.right.right.left = new TreeNode(7);
                mirror(root);
        }
       
        public static TreeNode mirror(TreeNode root){
                if(root == null){
                        return null;
                }
                TreeNode left = mirror(root.left);
                TreeNode right = mirror(root.right);
                root.left = right;
                root.right = left;
                return root;
        }

}
代码二
public class Solution {
    public void Mirror(TreeNode root) {
        TreeNode tmp = null;
        if (root != null)
            {
            tmp = root.left;
            root.left = root.right;
            root.right = tmp;
            if (root.left != null)
                Mirror(root.left);
            if (root.right != null)
                Mirror(root.right);
        }
    }
}

---------------------
作者:另一个我竟然存在
来源:CSDN
原文:https://blog.csdn.net/qq_24034545/article/details/84339933
版权声明:本文为博主原创文章,转载请附上博文链接!

相关标签:
回答
  • 消灭零回复
提交回复