剑指offer -二叉树的镜像
2018-04-02 11:35
253 查看
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:
二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5
还是递归
下面我们来分析,镜像发生的过程是怎么样的。这两个树根结点都是1,那么先交换根结点的左右结点,得到图2。交换后,我们发现,对于结点2和3来说,它们的子结点的左右顺序没有发生变化。因此还要交换对应的结点。对于根结点的左子树,将其视为一棵新的二叉树,同样的交换其子结点。得到图3。同样的作用于右子树,那么最后的交换就完成了。
下面我们来分析,镜像发生的过程是怎么样的。这两个树根结点都是1,那么先交换根结点的左右结点,得到图2。交换后,我们发现,对于结点2和3来说,它们的子结点的左右顺序没有发生变化。因此还要交换对应的结点。对于根结点的左子树,将其视为一棵新的二叉树,同样的交换其子结点。得到图3。同样的作用于右子树,那么最后的交换就完成了。
/**
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 dump = root.left;
root.left = root.right;
root.right = dump;
Mirror(root.left);
Mirror(root.right);
}
}
下面我们来分析,镜像发生的过程是怎么样的。这两个树根结点都是1,那么先交换根结点的左右结点,得到图2。交换后,我们发现,对于结点2和3来说,它们的子结点的左右顺序没有发生变化。因此还要交换对应的结点。对于根结点的左子树,将其视为一棵新的二叉树,同样的交换其子结点。得到图3。同样的作用于右子树,那么最后的交换就完成了。
相关文章推荐
- 剑指Offer 19题 二叉树的镜像 Java版
- 剑指offer---二叉树的镜像
- 剑指offer 二叉树的镜像
- 剑指Offer:二叉树的镜像(一刷)
- 剑指offer 19 二叉树的镜像
- 剑指Offer面试题18树的子结构(递归),面试题19二叉树的镜像(递归和非递归用栈)
- 剑指Offer面试题19(Java版):二叉树的镜像
- 剑指offer19:二叉树的镜像
- 【剑指offer】面试题19:二叉树的镜像
- 剑指offer---二叉树的镜像
- 剑指offer 19 - 二叉树的镜像
- 剑指offer-二叉树的镜像
- 剑指offer-操作给定的二叉树,将其变换为源二叉树的镜像
- 剑指offer--二叉树的镜像
- 剑指Offer 19 : 二叉树镜像
- 【剑指offer】面试题27:二叉树的镜像
- 剑指offer_二叉树的镜像
- 剑指offer:二叉树的镜像
- 剑指offer16--二叉树的镜像处理
- 【剑指offer】面试题19:二叉树的镜像