美文网首页
二叉树的镜像-java

二叉树的镜像-java

作者: Jacinth | 来源:发表于2017-07-13 00:18 被阅读0次

    二叉树的镜像

    题目描述

    操作给定的二叉树,将其变换为源二叉树的镜像。
    输入描述:
    二叉树的镜像定义:源二叉树
    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 class Solution {
        public void Mirror(TreeNode root) {
            if(root==null){
                return;
            }else if(root.left==null&&root.right==null){
                return;
            }else{
                //交换左右子树
                TreeNode temp=root.left;//TreeNode类表示当前树节点的父树节点
                root.left=root.right;
                root.right=temp;
                if(root.left!=null){
                    Mirror(root.left);
                }
                if(root.right!=null){
                    Mirror(root.right);
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:二叉树的镜像-java

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