18.二叉树的镜像

题目描述

       操作给定的二叉树,将其变换为源二叉树的镜像;

输入描述:
二叉树的镜像定义:源二叉树 
    	    8
    	   /  \
    	  6   10
    	 / \  / \
    	5  7 9 11
    	镜像二叉树
    	    8
    	   /  \
    	  10   6
    	 / \  / \
    	11 9 7  5

解题思路

    private 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 if (root.left == null && root.right == null) {
            //叶子节点
            return;
        }
        swap(root);
        if (root.left != null) {
            Mirror(root.left);
        }
        if (root.right != null) {
            Mirror(root.right);
        }
    }

    private void swap(TreeNode root) {
        TreeNode current = root.left;
        root.left = root.right;
        root.right = current;
    }

你可能感兴趣的:(剑指Offer,剑指Offer)