美文网首页
剑指 offer 笔记 22 | 二叉树的镜像

剑指 offer 笔记 22 | 二叉树的镜像

作者: ProudLin | 来源:发表于2019-06-27 23:45 被阅读0次

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

    image.png

    思路分析
    其实很多算法题都是自己吓自己,原因是太抽象,那么把他具体化呢?
    画个图就好分析了,看上面的图,仔细观察可知,左、右子节点换了,然后对应下面的左右子节点也是对换位置了....
    1)先交换根节点的左、右子树;
    2)交换值为 10 的节点的左右子树;
    3)交换值为 6 的节点的左右子树;

    依次类推,可以用递归!!!

    注意:老规矩,别忘判断空节点!!!

    public class Solution {
        public void Mirror(TreeNode root) {
            if(root == null) //判断树是否为空
                return;
            if(root.left == null && root == root.right)//判断左右树是否为空
                return;
            TreeNode pTemp = root.left;//把左子树节点赋值给临时节点
            root.left = root.right;//右子树节点赋值给左节点
            root.right = pTemp;//把左子树之前的存的值赋值给右子树节点
            if(root.left != null)//若左边子树还有节点,继续遍历
                Mirror(root.left);
            if(root.right != null)//若右边子树还有节点,继续遍历
                Mirror(root.right);
        }
    }
    

    参考文献:《剑指offer》

    相关文章

      网友评论

          本文标题:剑指 offer 笔记 22 | 二叉树的镜像

          本文链接:https://www.haomeiwen.com/subject/xuqjcctx.html