public boolean isSymmetricItr(TreeNode root){
        ArrayDeque<TreeNode> queue1 = new ArrayDeque<TreeNode>();
        ArrayDeque<TreeNode> queue2 = new ArrayDeque<TreeNode>();
        queue1.offerLast(root);
        queue2.offerLast(root);

        while(!queue1.isEmpty() && !queue2.isEmpty()){
            TreeNode n1 = queue1.pollFirst();
            TreeNode n2 = queue2.pollFirst();

            if(n1 == null && n2 == null) continue;
            if(n1 == null || n2 == null) return false;
            if(n1.val != n2.val) return false;

            queue1.offerLast(n1.left);
            queue1.offerLast(n1.right);

            queue2.offerLast(n2.right);
            queue2.offerLast(n2.left);
        }
        return queue1.isEmpty() && queue2.isEmpty();
    }