二叉树的镜像

来源:互联网 发布:java框架面试题及答案 编辑:程序博客网 时间:2024/05/22 00:06

题目描述

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

二叉树的镜像定义:源二叉树         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 void Mirror(TreeNode root) {        if (root == null){            return;        }else{            TreeNode temp = null;            temp = root.left;            root.left = root.right;            root.right = temp;            Mirror(root.left);            Mirror(root.right);        }    }



0 0