非递归写法
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;
}
}