数据结构-对称的二叉树-java

1.题目

给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)
例如:下面这棵二叉树是对称的
在这里插入图片描述
在这里插入图片描述

2.代码

public class Test {
    
    
    public static class TreeNode {
    
    
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;

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

    public static boolean istrue(TreeNode r1,TreeNode r2){
    
    
        if (r1==null&&r2==null){
    
    
            return true;
        }
        if (r1!=null&&r2==null){
    
    
            return false;
        }
        if (r1==null&&r2!=null){
    
    
            return false;
        }
        if (r1.val!=r2.val){
    
    
            return false;
        }

        boolean t =true;
        t = istrue(r1.left,r2.right);
        if(t==false){
    
    
            return false;
        }
        t = istrue(r1.right,r2.left);
        return t;
    }

    static boolean  isSymmetrical(TreeNode pRoot) {
    
    
      return  istrue(pRoot.left,pRoot.right);
    }

    public static void main(String[] args) {
    
    
        TreeNode r1 = new TreeNode(1);
        TreeNode r2 = new TreeNode(2);
        TreeNode r3 = new TreeNode(3);
        r1.left=r2;r1.right = r3;
        System.out.println(isSymmetrical(r1));
    }
}

猜你喜欢

转载自blog.csdn.net/qq_25064691/article/details/121367028