Java 我的树递归方法没有';我不能正常工作

Java 我的树递归方法没有';我不能正常工作,java,recursion,Java,Recursion,我期望得到真实,但我得到虚假。我想我错过了一两点。我应该如何修复它?多亏了郡居民的建议: public static boolean isMirror(TreeNode left, TreeNode right){ if (left==null && right==null){ return true; } if (left!=null && right!=null) {

我期望得到真实,但我得到虚假。我想我错过了一两点。我应该如何修复它?

多亏了
郡居民的建议:

 public static boolean isMirror(TreeNode left, TreeNode right){
        if (left==null && right==null){
            return true;
        }
        if (left!=null && right!=null) {
            if (left.data == right.data) {
                return (isMirror(left.left, left.right) && isMirror(right.left, right.right));
            }

        }
        return false;

    }

    public static boolean isSymmetric(TreeNode root){
        if (root==null){
            return true;
        }
        return isMirror(root.left, root.right);
    }


    public static void main(String[] args){
        TreeNode root=new TreeNode();
        TreeNode n1=new TreeNode();
        TreeNode n2=new TreeNode();
        TreeNode n3=new TreeNode();
        TreeNode n4=new TreeNode();

        root.left=n1;
        root.right=n2;
        n1.left=n3;
        n2.right=n4;


        root.data=3;
        n1.data=6;
        n2.data=6;
        n3.data=1;
        n4.data=1;

我假设它应该
返回isMirror(left.left,right.left)&&isMirror(left.right,right.right)。开始使用调试器的好时机。当你可以这么做并让别人为你调试时,为什么要调试……。?@Tunaki这一个对我来说更有意义
返回(isMirror(left.left,right.left)&&isMirror(left.right,right.left))我为什么要选择那个?@Mona第一次呼叫的第二个参数应该是正确的。对。
public static boolean isMirror(TreeNode left, TreeNode right){
        if (left==null && right==null){
            return true;
        }
        if (left!=null && right!=null) {
            if (left.data == right.data) {
                //return (isMirror(left.left, left.right) && isMirror(right.left, right.right));
                return (isMirror(left.left, right.right) && isMirror(left.right, right.left));
            }

        }
        return false;

    }