非递归写法

import java.util.*;
/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

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

    }

}
*/
public class Solution {
    boolean isSymmetrical(TreeNode pRoot) {
        if (pRoot == null) return true;
        Queue<TreeNode> q1 = new LinkedList<TreeNode>();
        Queue<TreeNode> q2 = new LinkedList<>();
        q1.offer(pRoot.left);
        q2.offer(pRoot.right);

        while (!q1.isEmpty() || !q2.isEmpty()) {
            TreeNode t1 = q1.poll(), t2 = q2.poll();
            if (t1 == null && t2 == null) continue;
            if (t1 == null || t2 == null) return false;
            if (t1.val != t2.val) return false;

            q1.offer(t1.left);
            q1.offer(t1.right);
            q2.offer(t2.right);
            q2.offer(t2.left);
        }
        return true;
    }
}