20200411——剑指offer 面试题28 对称的二叉树

package question28_对称二叉树;

import sun.reflect.generics.tree.Tree;

/**
 * @Classname MaIn
 * @Description TODO
 * @Date 2020/4/11 22:37
 * @Created by mmz
 */
public class MaIn {
    static class  TreeNode{
        int val;
        TreeNode left = null;
        TreeNode right = null;

        public TreeNode(int val) {
            this.val = val;
        }

        @Override
        public String toString() {
            return "TreeNode{" +
                    "val=" + val +
                    ", left=" + left +
                    ", right=" + right +
                    '}';
        }
    }

    static boolean Core(TreeNode root){
        if(root == null){
            return false;
        }
        return CoreMirror(root.left,root.right);
    }

    static boolean CoreMirror(TreeNode left,TreeNode right){
        if(left == null && right == null){
            return true;
        }
        if(left != null && right == null){
            return false;
        }
        if(left == null && right != null){
            return false;
        }
        if(left.val != right.val){
            return false;
        }
        return CoreMirror(left.left,right.right)&&CoreMirror(left.right,right.left);
    }

    public static void main(String[] args) {
        TreeNode one = new TreeNode(8);
        TreeNode two = new TreeNode(6);
        TreeNode three =new TreeNode(7);
        one.left = two;
        one.right = three;
        System.out.println(Core(one));
    }
}

没问题,很简单。

发布了983 篇原创文章 · 获赞 43 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_36344771/article/details/105461624