My tree recursion method doesn't work correctly
<pre><code> public static boolean isMirror(TreeNode left, TreeNode right){
        if (left==null &amp;&amp; right==null){
            return true;
        }
        if (left!=null &amp;&amp; right!=null) {
            if (left.data == right.data) {
                return (isMirror(left.left, left.right) &amp;&amp; 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;
</code></pre>

<p>I expect to receive true but I receive false. I assume I have missed a point or two. How should I fix it?</p>